我需要获取每个用户创建的帖子数。 这是两个表(用户,微博)的结构。
微博
用户
SELECT users.*, count( microposts.user_id )
FROM microposts LEFT JOIN users ON users.id=microposts.user_id
GROUP BY microposts.user_id
这只会使我获得那些拥有帖子的用户。我需要获得所有用户,即使他们有0条帖子
答案 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