我有这张桌子(非常简化):
id | product
------------
1 | a
2 | b
3 | b
3 | c
4 | c
5 | b
5 | c
5 | d
6 | d
6 | c
7 | b
8 | b
9 | c
10 | d
我想获得只有produkt'd'或'c'的所有ID。例如,不应选择“5”,因为它也有产品“b”。 结果应该是:4,6,9和10.
答案 0 :(得分:4)
解决此类问题的一种简单方法是计算ID具有的禁用产品数量:
SELECT id
FROM mytable
GROUP BY id
HAVING COUNT(CASE WHEN product NOT IN ('c', 'd') THEN 1 END) = 0