sql >> Databáze >  >> RDS >> Mysql

SQL dotaz, který vrací všechna data, která nejsou v tabulce použita

Máte pravdu – SQL neusnadňuje identifikaci chybějících dat. Obvyklou technikou je spojit vaši sekvenci (s mezerami) k úplné sekvenci a vybrat tyto prvky v druhé sekvenci bez odpovídajícího partnera ve vašich datech.

Takže, návrh @BenHoffstein udržovat stálou tabulku datumů je dobré.

Kromě toho můžete toto časové období dynamicky vytvořit pomocí tabulka celých čísel . Za předpokladu integers tabulka má sloupec i s čísly alespoň 0 – 13 a že tabulka má sloupec data s názvem 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. Načtení posledního záznamu v každé skupině - MySQL

  2. Vrátit všechny skupiny souborů pro aktuální databázi na serveru SQL Server

  3. Trendy v roce 2020, kterých by si správci databází měli být vědomi

  4. Dynamické spouštění SQL na serveru SQL