如何计算左连接中的另一个表

Sin*_*nan 6 mysql sql database

我有多个表

post
    id  Name
    1   post-name1
    2   post-name2

user
    id  username
    1   user1
    2   user2

post_user
    post_id   user_id
    1         1
    2         1

post_comments
    post_id   comment_id
    1         1
    1         2
    1         3
Run Code Online (Sandbox Code Playgroud)

我正在使用这样的查询:

SELECT post.id, post.title, user.id AS uid, username
FROM `post`
LEFT JOIN post_user ON post.id = post_user.post_id
LEFT JOIN user ON user.id = post_user.user_id
ORDER BY post_date DESC
Run Code Online (Sandbox Code Playgroud)

它按预期工作.但是,我想获得每个帖子的评论数量.那么如何修改此查询以便我可以获得评论的数量.

有任何想法吗?

dcp*_*dcp 19

SELECT post.id, post.title, user.id AS uid, username, COALESCE(x.cnt,0) AS comment_count
FROM `post`
LEFT JOIN post_user ON post.id = post_user.post_id
LEFT JOIN user ON user.id = post_user.user_id
LEFT OUTER JOIN (SELECT post_id, count(*) cnt FROM post_comments GROUP BY post_id) x ON post.id = x.post_id
ORDER BY post_date DESC
Run Code Online (Sandbox Code Playgroud)

编辑:如果没有任何评论,使其成为外部联接

EDIT2:将IsNull更改为Coalesce