我正在尝试查询所有ID号的数据,其中具有该ID号的所有行都与另一列中的某个值匹配。
例如,查询所有具有该ID的行都具有蓝色的ID。
样品表:
ID: Color:
1 Red
1 Blue
2 Blue
2 Blue
3 Blue
期望的查询结果:ID: 2, 3
我们看到带有ID: 1
的一行具有Color: Blue
,但是带有ID: 1
的另一行具有Color: Red
,因此不太正确。
如果我只是查询Color = Blue的不同ID,我会看到ID: 1, 2, 3
答案 0 :(得分:1)
以下是使用aggregation
的一种选择:
select id
from yourtable
group by id
having max(color) = 'Blue' and min(color) = 'Blue'
答案 1 :(得分:0)
这样的查询:
select id
from test
group by id
having sum(case when color = 'Red' then 1 else 0 end) < 1;
带演示的SQLFiddle:http://sqlfiddle.com/#!9/0da93b/11