假设我的表如下所示,
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)
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');
但你的方法没问题。