我有一个表格会有这样的数据
PRODUCTID | GENREID
1 | 5
1 | 6
1 | 8
2 | 5
2 | 10
3 | 6
我正在尝试写一个声明,如果我提供数字5,6和8,它只会返回给我ProductID'1'。我最初的想法是写这样的东西,但我开始迷惑自己,因为我不是一个SQL忍者:
select
p1.productid
from
dbo.ProductGenre p1
inner join
dbo.ProductGenre p2 on p2.GenreID = p1.GenreID
where
p1.GenreID = 5
答案 0 :(得分:3)
SELECT productid
FROM dbo.productgenre
WHERE genreid IN ( 5, 6, 8 )
GROUP BY productid
HAVING Count(DISTINCT genreid) = 3