mysql找到尚未发布的用户

时间:2017-09-23 16:47:48

标签: mysql

我有一个users列,其中id列和posts表格的列数为user_id

我希望找到所有从未发布的用户。

伪代码:

SELECT u.* FROM users u
JOIN posts p 
WHERE u.id IS NEVER IN p.user_id

我认为我在这里遗漏了一些简单而无法找到答案的东西。感谢您的任何帮助,您可以提供。

5 个答案:

答案 0 :(得分:4)

使用LEFT JOIN

SELECT u.* 
FROM users u
LEFT JOIN posts p ON u.id = p.user_id 
WHERE p.user_id is null;
即使他们没有发布任何帖子,

LEFT JOIN也会向您提供这些用户,这些用户的p.user_id等于null。因此,添加WHERE p.user_id is null将为您提供从未发布任何帖子的用户。

答案 1 :(得分:1)

你可以试试这个 -

SELECT u.* FROM users u
where u.id not in (select p.user_id from posts p);

答案 2 :(得分:1)

这是你的解决方案:

SELECT u.* FROM users u WHERE u.id NOT IN (SELECT p.user_id FROM posts p)

有些解释,检查不在帖子中的用户的用户ID。

答案 3 :(得分:1)

你可以使用NOT IN和subselect

  SELECT u.* 
  FROM users u
  where u.id  NOT IN (
    select user_id 
    from posts
  )

答案 4 :(得分:1)

尝试在

中使用Not
props.index