查找值仅在数组中的ID

时间:2011-12-12 12:30:25

标签: mysql sql

表:

ID | Value
-----------------
1 | red
1 | black

2 | green
2 | black
  

数组('green','orange','black');

我需要获得结果ID:2

有人可以拯救我的生命吗?

2 个答案:

答案 0 :(得分:3)

SELECT id
FROM table
WHERE value IN ('green', 'orange', 'black')
      AND id NOT IN (
          SELECT id
          FROM table
          WHERE value NOT IN ('green', 'orange', 'black'))

答案 1 :(得分:2)

尝试:

SELECT id
FROM table
group by id
having sum(case when value IN ('green', 'orange', 'black') then 1 else 0 end) > 0
and sum(case when value NOT IN ('green', 'orange', 'black') then 1 else 0 end) = 0