sql >> Database >  >> RDS >> Mysql

SQL-query die alle datums retourneert die niet in een tabel worden gebruikt

Je hebt gelijk:SQL maakt het niet gemakkelijk om ontbrekende gegevens te identificeren. De gebruikelijke techniek is om uw reeks (met gaten) samen te voegen met een volledige reeks, en die elementen in de laatste reeks te selecteren zonder een corresponderende partner in uw gegevens.

Dus de suggestie van @BenHoffstein het is een goede zaak om een ​​vaste datumtafel bij te houden.

Afgezien daarvan kunt u die periode dynamisch maken met een tabel met gehele getallen . Uitgaande van de integers tabel heeft een kolom i met getallen van minimaal 0 – 13, en dat uw tabel de datumkolom heeft met de naam datestamp :

   SELECT candidate_date AS missing
     FROM (SELECT CURRENT_DATE + INTERVAL i DAY AS candidate_date
             FROM integers
            WHERE i < 14) AS next_two_weeks
LEFT JOIN my_table ON candidate_date = datestamp
    WHERE datestamp is NULL;


  1. MySQL wiskundige functies (volledige lijst)

  2. Krijg kolomnaam dynamisch op specifieke rijwaarde

  3. Blob in Oracle-database invoegen met C#

  4. Hoe kan ik een mysql-database maken met Docker compose?