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

MySQL - Làm thế nào để xóa khỏi bảng khi lựa chọn lồng nhau sử dụng bảng đó?

Có thể bạn đang gặp lỗi này:

ERROR 1093 (HY000): You can't specify target table 'table_1' for update in FROM clause.

Bạn có thể thực hiện việc này bằng cách sử dụng multi-table DELETE cú pháp thay thế:

DELETE table_1.*
FROM   table_1,
       table_2,
       table_3
WHERE  table_1.id = table_2.table_1_id
AND    table_2.id = table_3.table_2_id
AND    table_3.id = 5

Truy vấn trên sẽ hoạt động, nhưng theo quy tắc chung, tôi khuyên bạn nên sử dụng cú pháp ANSI JOIN thay thế:

DELETE table_1.*
FROM   table_1
INNER JOIN table_2 on table_2.table_1_id = table_1.id
INNER JOIN table_3 on table_3.table_2_id = table_2.id
WHERE table_3.id = 5



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. truy vấn php cho vĩ độ và kinh độ iOS không tìm kiếm vĩ độ và vĩ độ mysql lân cận với đầu ra xml

  2. Làm thế nào để hiển thị tốt nhất trong Terminal một MySQL SELECT trả về quá nhiều trường?

  3. MySQL LIKE so với LOCATE

  4. Cách tạo và xóa cơ sở dữ liệu và bảng trong MySQL

  5. MySql:Đếm số lần các từ xuất hiện trong một cột