mysql - 选择同一列中具有标志 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')
解决方案
SELECT id
FROM source
GROUP BY id
HAVING SUM(flag=2)
AND !SUM(flag=5)
推荐阅读
- c - 更改从未到达的行时发生堆栈溢出 - 为什么以及如何防止它?
- android - android矢量的中心路径
- docker - 如何使用 docker env 创建文件
- javascript - 如果电子邮件发送失败,如何在 403 客户端显示消息?
- javascript - 将具有嵌套对象的对象转换为对象数组,由内部对象的键重新分组
- git - 显示未暂存更改的文件的最后提交和最后修改日期
- python - 如何从Python中的未排序列表中找到排序列表中的移位数
- javascript - HTTP/2 服务器推送不适用于 JavaScript 文件
- variables - 如何在矩阵中获取回归输出的变量标签
- reactjs - 尝试为 ReactJs 项目设置 Jest