我有一张用户表和一张他们在列表中拥有的东西的表 -
为了显示列表中有项目的所有用户,我可以在 user_id
上加入 users
和 user_lists
这两个表
例如
select u.emailaddr, u.name from users u
join user_lists uw where u.user_id=uw.user_id
group by u.name
问题:如何显示所有没有列表中的项目的用户 - 换句话说,我需要一个没有列表的用户列表表 user_lists 中的条目
我试过了,但它一直在运行
select u.emailaddr, u.name from users u
join user_lists uw where u.user_id<>uw.user_id
group by u.name
最佳答案
使用 LEFT JOIN
和 IS NULL
谓词:
select u.emailaddr, u.name
from users u
LEFT join user_lists uw ON u.user_id = uw.user_id
WHERE uw.user_id IS NULL;
或者: NOT IN
谓词:
select u.emailaddr, u.name
from users u
WHERE u.user_id NOT IN (SELECT user_id
FROM user_lists);
关于mysql - 仅在为空时选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15585921/