Ihre Abfrage sollte wie folgt aussehen:
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;
Dies setzt voraus, dass date
von blog
kommt (was der Fall sein sollte, wenn Ihre aktuelle Abfrage funktioniert). Der Unterschied ist, dass Sie von der Sekunde Tabelle, nicht die erste zählen.
Dies verwendet *
nicht für Spalten von blog
. Das ist normalerweise eine sehr, sehr schlechte Idee, wenn Sie GROUP BY
verwenden. Die bewährte Methode (die von fast allen SQL-Engines erzwungen wird) besteht darin, nur nicht aggregierte Spalten in SELECT
aufzunehmen, wenn sie sich in GROUP BY
befinden.
Hinweis: Es scheint sehr peinlich, dass die gleiche Spalte id
für die JOIN
zwischen zwei sehr unterschiedlichen Entitäten (Blogs und Kommentare) verwendet wird.