sql >> Database >  >> RDS >> Mysql

Hoe krijg ik een telling, zelfs als er geen resultaten zijn die overeenkomen met mysql?

Om dit te doen, kunt u een 'maandtabel' maken en vervolgens een left outer join tussen die tabel en de rapporttabel gebruiken.

Ik heb nog nooit mysql gebruikt, dus excuses als de syntaxis een beetje verkeerd is, maar dit zou de vraag zijn:

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

Belangrijk is dat de telling van een kolom in de tabel met rapporten moet zijn, niet van de tabel met maanden, anders zou je nooit een nul krijgen.



  1. PHP - While / Else-fout?

  2. Uitstelbare beperkingen in SQL Server

  3. ReadyCloud ReadyShipper X

  4. Vermijd HA/DR-oplossing Zelf-waan