MySQL Query:如何选择没有特定值的行?

时间:2010-05-10 18:18:37

标签: mysql select

我在编写查询时遇到问题,我甚至不知道是否可能。以此表为例:

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”)而不是整行。

这可能吗?

2 个答案:

答案 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');