我有一个帖子和用户表,我希望下面的代码将返回一个带有post_count列的表,如果用户有0个帖子它应该仍然说0,但是下面的代码不会返回所有用户,只有那些有帖子。
SELECT users.*, COUNT(posts.id) post_count
FROM `posts`
JOIN `users` ON `posts`.`user_id` = `users`.`id`
GROUP BY(posts.user_id)
ORDER BY `users`.`id`
答案 0 :(得分:1)
在sql中,您需要使用左连接:
SELECT users.*, COUNT(posts.user_id) post_count
FROM users
LEFT JOIN posts ON posts.user_id = users.id
GROUP BY(users.id)
ORDER BY users.id
左连接将包括用户表中的所有项目以及仅存在的posts表中的记录。