Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kueri SQL yang mengembalikan semua tanggal yang tidak digunakan dalam tabel

Anda benar — SQL tidak memudahkan untuk mengidentifikasi data yang hilang. Teknik yang biasa digunakan adalah menggabungkan urutan Anda (dengan celah) terhadap urutan yang lengkap, dan memilih elemen-elemen tersebut dalam urutan terakhir tanpa pasangan yang sesuai dalam data Anda.

Jadi, saran @BenHoffstein mempertahankan tabel tanggal permanen adalah hal yang baik.

Singkatnya, Anda dapat secara dinamis membuat rentang tanggal tersebut dengan tabel bilangan bulat . Dengan asumsi integers tabel memiliki kolom i dengan angka minimal 0 – 13, dan tabel Anda memiliki kolom tanggal bernama 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat tabel di MySQL yang cocok dengan tabel lain?

  2. Injeksi SQL di ADOdb dan keamanan situs web umum

  3. MySQL pilih catatan 1 jam yang lalu atau lebih baru di kolom datetime

  4. String terpotong pada panjangnya, tetapi tidak ada pemotongan kata yang diperbolehkan

  5. MySQL DENGAN klausa