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

MySql count() per restituire 0 se nessun record trovato

Nessun record per il mese di January ecco perché non ottieni alcun risultato. Una soluzione che funziona è entrare a far parte di una sottoquery con contiene l'elenco dei mesi che si desidera visualizzare nell'elenco.

SELECT count(b.id) as totalRec
FROM   (
            SELECT 'January' mnth
            UNION ALL
            SELECT 'February' mnth
            UNION ALL
            SELECT 'March' mnth
        ) a
        LEFT JOIN post b
            ON a.mnth = DATE_FORMAT(b.date, '%M') AND
               year(b.date) =  '2013' AND 
               DATE_FORMAT(b.date, '%M') IN ('January', 'February', 'March') 
GROUP  BY year(b.date)-month(b.date) 
ORDER  BY b.date ASC

USCITA

╔══════════╗
║ TOTALREC ║
╠══════════╣
║        0 ║
║        7 ║
║        9 ║
╚══════════╝