2016-09-24 5 views

Antwort

0

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.

0

Ich ändere nur, um zu zählen (comment.id) von count (blog.id)

Verwandte Themen