Mysql
 sql >> база данни >  >> RDS >> Mysql

Изтрийте sql редове, където идентификаторите нямат съвпадение от друга таблица

Използване на LEFT JOIN/IS NULL:

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

Използване на NOT EXISTS:

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

Използване на NOT IN:

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

Предупреждение

Когато е възможно, извършвайте DELETE в рамките на транзакция (ако приемем, че се поддържа - IE:не на MyISAM), за да можете да използвате връщане назад, за да върнете промените в случай на проблеми.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да разрешите отказан достъп за потребителя ‘root’@’localhost’ (използвайки парола:Да) Когато свържете MySQL база данни

  2. Кога да използвате единични кавички, двойни кавички и обратни кавички в MySQL

  3. MySQL Преименуване на колона

  4. INSERT с SELECT

  5. BIN() – Вземете двоичната стойност на число в MySQL