MySQL:根据第二列

时间:2017-10-26 16:39:39

标签: mysql sql select

我有这张桌子(非常简化):

 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.

1 个答案:

答案 0 :(得分:4)

解决此类问题的一种简单方法是计算ID具有的禁用产品数量:

SELECT   id
FROM     mytable
GROUP BY id
HAVING   COUNT(CASE WHEN product NOT IN ('c', 'd') THEN 1 END) = 0