SQL语句混乱

时间:2015-02-04 16:57:57

标签: sql

我有一个表格会有这样的数据

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

1 个答案:

答案 0 :(得分:3)

SELECT productid
FROM   dbo.productgenre
WHERE  genreid IN ( 5, 6, 8 )
GROUP  BY productid
HAVING Count(DISTINCT genreid) = 3