Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment trouver les lignes manquantes (dates) dans une table mysql ?

La façon la plus simple de trouver des dates manquantes est d'utiliser une table de calendrier. J'ai posté code pour créer et remplir une table de calendrier pour PostgreSQL ; vous devriez pouvoir l'adapter sans problème.

Avec la table de calendrier en place, votre requête est assez simple et facile à comprendre. Pour trouver les dates manquantes pour octobre 2011, vous utiliseriez quelque chose dans ce sens. (Devinant à votre table "messages".)

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