Es gibt keinen Datensatz für den Monat January
Deshalb erhalten Sie kein Ergebnis. Eine funktionierende Lösung besteht darin, einer Unterabfrage beizutreten, die eine Liste der Monate enthält, die in der Liste angezeigt werden sollen.
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
AUSGABE
╔══════════╗
║ TOTALREC ║
╠══════════╣
║ 0 ║
║ 7 ║
║ 9 ║
╚══════════╝