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

Hapus baris sql di mana ID tidak memiliki kecocokan dari tabel lain

Menggunakan LEFT JOIN/IS NULL:

DELETE b FROM BLOB b 
  LEFT JOIN FILES f ON f.id = b.fileid 
      WHERE f.id IS NULL

Menggunakan NOT EXISTS:

DELETE FROM BLOB 
 WHERE NOT EXISTS(SELECT NULL
                    FROM FILES f
                   WHERE f.id = fileid)

Menggunakan NOT IN:

DELETE FROM BLOB
 WHERE fileid NOT IN (SELECT f.id 
                        FROM FILES f)

Peringatan

Kapan pun memungkinkan, lakukan DELETE dalam transaksi (dengan asumsi didukung - IE:Not on MyISAM) sehingga Anda dapat menggunakan rollback untuk mengembalikan perubahan jika terjadi masalah.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel Eloquent pilih semua baris dengan maks Created_at

  2. Menanyakan SKEMA INFORMASI MySQL:Mengapa? Bagaimana?

  3. Konversi MySQL ke SQLite

  4. hasil ganda dalam array saya ( mysql_fetch_array )

  5. Kerangka Ketersediaan Tinggi MySQL Dijelaskan – Bagian I:Pendahuluan