首页 > 解决方案 > 选择同一列中具有标志 x1 但不具有 x2 的所有 id

问题描述

从具有 2 列 ID 和标志的表中

ID  Flag
111  2
222  2
333  2
444  2
333  5
111  5

我想选择所有有 2 标志但不是 5 的 id

预期答案

222
444

我在下面尝试过,但这不起作用。

SELECT * from table
where flag in ('2')
and flag not in ('5')

标签: mysql

解决方案


SELECT id
FROM source
GROUP BY id
HAVING SUM(flag=2)
   AND !SUM(flag=5)

推荐阅读