[SQL] Intersection multiples
Bonjour,
Dans mon problème, j'ai la table suivante :
Code:
1 2 3 4 5 6 7 8 9
|
CREATE TABLE [dbo].[CategoryAsset]
(
CategoryId int NOT NULL,
AssetId int NOT NULL
)
ALTER TABLE [dbo].[CategoryAsset]
ADD CONSTRAINT [PK_CategoryAsset]
PRIMARY KEY (CategoryId, AssetId) |
Si je veux obtenir la liste des AssetId correspondant à une Catégorie donnée je procède ainsi :
Code:
1 2 3 4 5 6
|
DECLARE @Category int;
SET @Category = 20000;
SELECT DISTINCT ca.AssetId
FROM CategoryAsset ca
WHERE ca.CategoryId=@Category; |
Maintenant je souhaite avoir la liste des AssetId correspondant à plusieurs Catégories :
Code:
1 2 3 4 5
|
DECLARE @Categories Table(Id int);
INSERT INTO @Categories(Id) VALUES(20000);
INSERT INTO @Categories(Id) VALUES(860000);
SELECT ??????????????????????????? |
C'est ici que je bloque. J'ai besoin de faire une requête select qui me donne l'intersection des AssetId ayant les categoryId contenus dans ma variable @Categories...
En bref, le résultat que je souhaite obtenir est l'équivalent de :
Code:
1 2 3 4 5 6 7 8
|
SELECT DISTINCT ca.AssetId
FROM CategoryAsset ca
WHERE ca.CategoryId=20000
INTERSECT
SELECT DISTINCT ca.AssetId
FROM CategoryAsset ca
WHERE ca.CategoryId=860000 |
Sachant que je ne souhaite pas faire de la génération de code sql.
Merci