计算每个用户的帖子数-SQL

时间:2019-01-16 16:34:35

标签: sql phpmyadmin

我需要获取每个用户创建的帖子数。 这是两个表(用户,微博)的结构。

微博

  • id
  • user_id
  • 内容
  • created_at

用户

  • id
  • 名称
  • 电子邮件
  • 管理员

SELECT users.*, count( microposts.user_id ) 
FROM microposts LEFT JOIN users ON users.id=microposts.user_id 
GROUP BY microposts.user_id

这只会使我获得那些拥有帖子的用户。我需要获得所有用户,即使他们有0条帖子

1 个答案:

答案 0 :(得分:1)

您的连接顺序错误。

LEFT JOIN中,请确保您将表中的所有记录保留为第一个(向左)

因此,以其他顺序({users first / left)加入,然后按用户表的ID分组,而不是微博表的user_id ...

SELECT users.*, count( microposts.user_id ) 
FROM users LEFT JOIN microposts ON users.id=microposts.user_id 
GROUP BY users.id