Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Fehlenden Monat zum Abfrageergebnis hinzufügen

Erstellen Sie eine Tabelle mit allen Monaten und verbinden Sie sie dann mit Ihrer Abfrage. Nach dem Vorbild von

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

Es wird irgendwie funktionieren, aber es wird Ihnen Ergebnisse von Januar bis Dezember zurückgeben und Ihnen keine Jahre geben. Eine ähnliche Frage wurde schon einmal gestellt, dann kam ich auf eine sehr komplexe Abfrage. Wenn Sie also nichts Einfacheres finden, sollten Sie einen Blick darauf werfen:

Abfrage zwischen Daten funktioniert nicht, jetzt haben wir ein neues Jahr