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

MySQL | Bạn không thể chỉ định bảng mục tiêu 'a' để cập nhật trong mệnh đề FROM

Bạn không thể xóa khỏi một bảng và tham chiếu cùng một bảng trong một truy vấn con - chỉ là một hạn chế của MySQL. Một cái gì đó như sau sẽ hoạt động:

DELETE FROM table_a 
USING table_a
INNER JOIN table_b
    ON table_a.code = table_b.code
    AND table_b.id = table_a.b_id
    AND table_b.table = 'testTable'
WHERE table_a.object_id = 1 
    AND table_a.code = 'code' 

Phần quan trọng là USING . Nếu bạn chỉ tham gia hai bảng, bạn sẽ xóa các bản ghi khỏi cả hai. USING yêu cầu MySQL sử dụng các bảng này để xử lý, nhưng chỉ xóa khỏi các bảng trong FROM mệnh đề.

http://dev.mysql.com/doc/refman/5.0 /en/delete.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tránh các truy vấn lồng nhau

  2. Truy vấn MySQL với câu lệnh điều kiện?

  3. Dấu thời gian Laravel đang được cập nhật mà không có lệnh gọi rõ ràng để làm như vậy

  4. Làm thế nào để sử dụng toán tử lớn hơn với ngày?

  5. Truy vấn Mysql để có được số lượng mỗi tháng