Mysql
 sql >> Datenbank >  >> RDS >> Mysql

geben Sie mit mysql group by die Anzahl 0 zurück

Ein GROUP BY benötigt Zeilen, mit denen gearbeitet werden kann. Wenn Sie also keine Zeilen für eine bestimmte Kategorie haben, erhalten Sie die Anzahl nicht. Stellen Sie sich die where-Klausel als Begrenzung der Quellzeilen vor, bevor sie gruppiert werden. Die where-Klausel stellt keine Liste von Kategorien bereit, nach denen gruppiert werden soll.

Sie könnten eine Abfrage schreiben, um die Kategorien (Vororte) auszuwählen, und dann die Zählung in einer Unterabfrage durchführen. (Ich bin mir nicht sicher, wie die Unterstützung von MySQL dafür ist)

Etwas wie:

SELECT 
  s.suburb_id,
  (select count(*) from suburb_data d where d.suburb_id = s.suburb_id) as total
FROM
  suburb_table s
WHERE
  s.suburb_id in (1,2,3,4)

(MSSQL, Entschuldigung)