选择字段中没有特定值的事件

时间:2017-04-24 11:30:22

标签: mysql sql

给出一个包含字段A和B的表:

| A | B |
---------
| 1 | p |
| 1 | f |
| 1 | t |
| 2 | p |
| 2 | f |

我正在尝试构建一个查询,找到所有A的某个地方也没有't'。

因此,对于此数据,输出应该是

| A |
-----
| 2 |

因为2没有在字段B中的任何地方列出't'

我尝试了SELECT DISTINCT A FROM table WHERE B!='t',但该逻辑存在缺陷,因为1还包含B!='t'行。我也尝试了GROUP BY的各种变体,但我被卡住了。

请帮忙

3 个答案:

答案 0 :(得分:5)

我会使用group byhaving

select a
from t
group by a
having sum(b = 't') = 0;

答案 1 :(得分:4)

试试这个:

SELECT A
FROM mytable
GROUP BY A
HAVING SUM(B = 't') = 0

HAVING子句过滤掉包含至少一条A条记录的B = 't'组。

答案 2 :(得分:0)

使用GROUP BY和HAVING子句:

 SELECT A
 FROM 
 GROUP BY A
 HAVING SUM(B = 't') = 0;