Mysql
 sql >> Database >  >> RDS >> Mysql

Come ottenere un conteggio anche se non ci sono risultati corrispondenti a mysql?

Per fare ciò, puoi creare una tabella "mese" e quindi utilizzare un join esterno sinistro tra quella tabella e la tabella dei rapporti.

Non ho mai usato mysql quindi mi scuso se la sintassi è leggermente disattivata, ma questa sarebbe la query:

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

È importante sottolineare che il conteggio dovrebbe essere di una colonna nella tabella dei rapporti, non della tabella dei mesi, altrimenti non otterresti mai uno zero.