今天在写自己一个博客项目时遇到了一个数据库问题,因为对于数据库自己所知道的还是很浅显的,对一些查询语句不怎么熟悉。

我目前有一个文章表和评论表,评论表里面有个post_id对应文章表里面的id,想查询出来的是文章表的所有内容和每篇文章对应的评论数,遇到的问题就是如果该文章下面如果没有评论就查不出该篇文章,自己翻阅了数据库书籍和网上找到了一些资料,终于想出了一个解决的办法。

以下是两张表和对应的查询语句:

文章表

评论表

对应的查询语句

SELECT posts.*,t1.count FROM
posts
LEFT OUTER JOIN
(
SELECT post_id ,COUNT(*) as count
FROM comments
GROUP BY post_id
) t1
ON t1.post_id = posts.id
order by posts.created desc

结果截图:

这里如果count等于零时他的值为null