SQL Sélection de lignes avec des valeurs multiples

J'ai ces 2 tables:

Table SW_ITEM:

ID  SWID  ITEM_ID
1    1      99
2    2      99
3    5      99
4    2      100
5    1      100
6    1      101
7    2      102

Table ITEM:

  ID   FILENAME
  99      abc
  100     def
  101     geh
  102     ijk

colonne ITEM_ID est une clé étrangère vers la colonne ID de table ITEM.

Donc, je veux que tous les noms de fichiers qui ont le SWID "1" ET "2" (ce qui serait ITEMID 99 et 100, de sorte que leurs noms de fichiers sont "abc" et "def")

Ici, je dois dire qu'il est possible que ITEM_ID a plus d'une entrée avec la même SWID, je ne peux donc pas utiliser cette SQL:

SELECT ITEM_ID FROM SW_ITEM
WHERE SWID  IN (1,2) 
GROUP BY ITEM_ID
HAVING COUNT(ITEM_ID) = 2

Donc, il y a une autre possibilité pour obtenir toutes les entrées qui ont le SWID 1 et 2 (création d'une jointure pour chaque SWID est pas une solution - car avec de nombreuses entrées, ce serait vraiment lent)

Salutations

OriginalL'auteur rimes | 2013-07-29