Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Usuń wiersze sql, w których identyfikatory nie pasują do innej tabeli

Używanie LEFT JOIN/IS NULL:

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

Korzystanie NIE ISTNIEJE:

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

Używanie NOT IN:

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

Ostrzeżenie

Jeśli to możliwe, wykonuj DELETE w ramach transakcji (zakładając, że jest obsługiwane - IE:Nie w MyISAM), aby w razie problemów można było użyć wycofywania zmian, aby cofnąć zmiany.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wstawić znak mb4 utf-8 (emotikony w ios5) w mysql?

  2. MySQL i NoSQL:pomóż mi wybrać właściwy

  3. Migracja bazy danych Oracle do MySQL na AWS, część 2

  4. JSON_ARRAYAGG() – Utwórz tablicę JSON z wierszy zapytania w MySQL

  5. Jak sprawdzić wersję MySQL