问题在于,如果有0条评论或1条评论,则计数显示为1,而其余部分运行良好意味着2,3等工作正常。
$sql = "SELECT blog.*,count(blog.id) as Total FROM blog left JOIN comment on comment.id = blog.id GROUP BY date desc";
答案 0 :(得分:0)
您的查询应如下所示:
SELECT b.date, count(c.id) as Total
FROM blog b LEFT JOIN
comment c
ON c.id = b.id
GROUP BY b.date DESC;
这假设date
来自blog
(如果您当前的查询有效,则应该是这种情况)。区别在于您从第二个表计数,而不是第一个。
这不会对*
中的列使用blog
。使用GROUP BY
时,这通常是一个非常非常糟糕的主意。最佳实践(几乎所有SQL引擎强制执行)仅在SELECT
中包含GROUP BY
中的未聚合列。
注意:在两个非常不同的实体(博客和评论)之间使用id
相同的列JOIN
似乎非常尴尬。
答案 1 :(得分:0)
我只是从count(blog.id)改为count(comment.id)