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

Wie finde ich fehlende Zeilen (Datumsangaben) in einer MySQL-Tabelle?

Der einfachste Weg, fehlende Daten zu finden, ist die Verwendung einer Kalendertabelle. Ich habe Code zum Erstellen und Füllen einer Kalendertabelle für PostgreSQL ; Sie sollten es problemlos anpassen können.

Mit der Kalendertabelle ist Ihre Abfrage ziemlich einfach und leicht zu verstehen. Um die fehlenden Daten für Oktober 2011 zu finden, würden Sie etwas in dieser Richtung verwenden. (An deiner "posts"-Tabelle raten.)

select c.cal_date
from calendar c
left join posts p on (c.cal_date = p.date)
where p.date is null
  and c.cal_date between '2011-10-01' and '2011-10-31'
  and p.userid = 1
order by c.cal_date