提问者:小点点

获取不属于类别的客户端的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

最优雅的方式是什么。现在我使用类似的东西,但我的结果并不完全是我所需要的。因为这也得到了ID5和7

SELECT g.id, g.category
FROM groups g
WHERE (g.category<>'a' OR g.category IS NULL)

共2个答案

匿名用户

select * from groups
where id not in (select id from groups where category = 'a')

匿名用户

最优雅的方法可能使用<=>,MySQL的null-安全比较运算符。所以:

SELECT g.id, g.category
FROM groups g
WHERE NOT (g.category <=> 'a');

但你的方法没问题。