問題是,如果有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評論或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";
您的查詢應該是這樣的:
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
中包含中的未聚合列。
注意:同一列id
用於兩個截然不同的實體(博客和評論)之間的JOIN
似乎很尷尬。
我只是從count(blog.id)更改爲count(comment.id)