Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment obtenir un décompte même s'il n'y a pas de résultats correspondant à mysql ?

Pour ce faire, vous pouvez créer une table "mois", puis utiliser une jointure externe gauche entre cette table et la table des rapports.

Je n'ai jamais utilisé mysql donc désolé si la syntaxe est légèrement décalée, mais ce serait la requête :

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

Il est important de noter que le décompte doit correspondre à une colonne du tableau des rapports, et non au tableau des mois, sinon vous n'obtiendrez jamais de zéro.