Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Xóa các hàng sql trong đó ID không khớp với bảng khác

Sử dụng LEFT JOIN / IS NULL:

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

Sử dụng KHÔNG TỒN TẠI:

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

Sử dụng NOT IN:

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

Cảnh báo

Bất cứ khi nào có thể, hãy thực hiện XÓA trong một giao dịch (giả sử được hỗ trợ - IE:Không có trên MyISAM) để bạn có thể sử dụng tính năng khôi phục để hoàn nguyên các thay đổi trong trường hợp có sự cố.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Loại trường cơ sở dữ liệu tốt nhất cho một URL

  2. JSON_STORAGE_FREE () - Tìm hiểu Dung lượng lưu trữ được giải phóng sau khi cập nhật tài liệu JSON trong MySQL

  3. .NET Core 2.1 Identity nhận tất cả người dùng với các vai trò liên quan của họ

  4. Sử dụng mysqldump để sao lưu MySQL hoặc MariaDB

  5. Danh sách đầy đủ các ngôn ngữ trong MySQL