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

Wie bekomme ich eine Zählung, auch wenn es keine Ergebnisse gibt, die mysql entsprechen?

Dazu könnten Sie eine 'Monats'-Tabelle erstellen und dann einen linken äußeren Join zwischen dieser Tabelle und der Berichtstabelle verwenden.

Ich habe mysql noch nie verwendet, also entschuldigen Sie, wenn die Syntax etwas abweicht, aber dies wäre die Abfrage:

SELECT months.monthNumber,
    count(reports.id) AS `count`
FROM `months` left outer join `reports` on months.monthNumber = month(reports.date_lm) 
WHERE (status = 'submitted') 
AND (date_lm > 2012-08) 
GROUP BY monthNumber
ORDER BY monthNumber ASC

Wichtig ist, dass die Zählung einer Spalte in der Berichtstabelle entsprechen sollte, nicht der Monatstabelle, sonst würden Sie niemals eine Null erhalten.