有两个表,博客和评论表。在博客表中,所有博客都存储了
博客表
----------------------------------------
id | blog_name | date
----------------------------------------
1 | abc | 31/3/17
----------------------------------------
2 | xyz | 31/3/17
----------------------------------------
3 | rbc | 31/3/17
----------------------------------------
4 | ert | 31/3/17
----------------------------------------
评论表
----------------------------------------
id | comment | blog_id | approved
----------------------------------------
1 | abc | 1 | 0
----------------------------------------
2 | xyz | 1 | 1
----------------------------------------
3 | rbc | 2 | 0
----------------------------------------
4 | ert | 4 | 1
----------------------------------------
现在我希望以某种方式显示结果...所有博客都会显示,但每个博客都会显示评论数量..但评论计数应仅针对已批准的评论..默认情况下,批准的评论为0表示不批准,但1意味着批准..问题是,如果我加入两个表在我写的条件批准= 1然后它只显示2个博客,但我需要显示所有博客评论..如果任何博客评论不存在于评论表然后它将向我显示0计数...请帮助我这个
我正在使用此联接..此联接不显示所有博客..
SELECT b.id,b.blog_name,COUNT(c.comment)as comment_count FROM blog b LEFT JOIN comment c ON b.id = c.blog_id WHERE c.approved = 1 GROUP BY b.id
我希望所有博客都有评论..它只显示已批准的评论相关博客..
答案 0 :(得分:0)
选择 博客。*, COALESCE(COUNT(comments.id),0)AS comment_count
来自博客 LEFT JOIN评论 ON comments.blog_id = blog.id AND comments.approved = 1
GROUP BY blog.id