Maak een tabel met alle maanden en voeg deze vervolgens links toe met uw vraag. In de lijn van
select count(1) as count, months.month, year(published_at) as year
from months left join articles on months.month = month(published_at)
where published_at >= (now() - interval 1 year) and published_at <= now()
group by month(published_at)
order by year asc, month asc
Het zal een beetje werken, maar het geeft je resultaten van januari tot december, en het geeft je geen jaren. Een soortgelijke vraag werd eerder gesteld, toen kwam ik met een zeer complexe vraag, dus als je niets eenvoudiger kunt vinden, overweeg dan eens een kijkje te nemen:
Tussen datums query werkt niet, nu zijn we in een nieuw jaar