如何解决SQL 获取不属于类别的客户端
假设我的表如下,
id category
1 a
5 a
5 b
4 NULL
6 b
6 c
7 a
7 d
我想获得不属于“a”组的 ID
id category
4 NULL
6 b,c
最优雅的方式是什么? 现在我使用类似的东西,但我的结果并不完全是我需要的。因为这也得到 ids 5 和 7
SELECT g.id,g.category
FROM groups g
WHERE (g.category<>'a' OR g.category IS NULL)
解决方法
最优雅的方法可能是使用 <=>
,MySQL 的 NULL
安全比较运算符。所以:
SELECT g.id,g.category
FROM groups g
WHERE NOT (g.category <=> 'a');
但是你的方法很好。
,select * from groups
where id not in (select id from groups where category = 'a')
,
你可以做 EXIST
SELECT G.*
FROM GROUPS G
WHERE NOT EXISTS
( SELECT 1
FROM GROUPS G2
WHERE G2.category = 'a'
AND G.id = G2.id
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。