我在编写查询时遇到问题,我甚至不知道是否可能。以此表为例:
id group active
1 A NO
2 A YES
3 A NO
4 B YES
5 B NO
6 C NO
7 C NO
上面的表只是一个例子。在实际表中,这些树有更多的列,所以有这些。我需要的是一种只选择没有任何活动行的组名的方法。在这种情况下,“A”和“B”组至少有一行“active”=“YES”,但如果你看C,则没有活动行。结果我唯一需要的是组列值(在本例中为“C”)而不是整行。
这可能吗?
答案 0 :(得分:7)
SELECT DISTINCT group FROM table WHERE group NOT IN
(SELECT DISTINCT group FROM table WHERE active = 'YES')
答案 1 :(得分:1)
您首先要获取要排除的所有组,然后使用NOT IN
子句返回该列表中不包含的所有其他组。
SELECT DISTINCT t.group
FROM table t
WHERE t.group NOT IN
(SELECT DISTINCT t.group
FROM table t
WHERE t.active='YES');