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

Hvordan får man en optælling, selvom der ikke er nogen resultater, der svarer til mysql?

For at gøre dette kan du oprette en 'måned'-tabel og derefter bruge en venstre ydre sammenføjning mellem denne tabel og rapporttabellen.

Jeg har aldrig brugt mysql, så undskyld, hvis syntaksen er lidt deaktiveret, men dette ville være forespørgslen:

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

Vigtigt er det, at optællingen skal være en kolonne i rapporttabellen, ikke månedstabellen, ellers ville du aldrig få et nul.



  1. Sådan begrænser du adgang til databasen i PostgreSQL

  2. Disaster Recovery Options for PostgreSQL implementeret til en hybrid sky

  3. com.mysql.jdbc.PacketTooBigException

  4. MySQL SELECT sidste par dage?