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

Xóa, Cập nhật với các bảng dẫn xuất?

Bạn không thể xóa trực tiếp khỏi truy vấn con, nhưng bạn vẫn có thể sử dụng nó nếu muốn, bạn chỉ cần sử dụng nó trong JOIN :

DELETE usrs
FROM usrs
    INNER JOIN (
        SELECT * FROM usrs WHERE name = 'john'
    ) t ON usrs.Id = t.Id

Hoặc bạn có thể sử dụng IN :

DELETE usrs
WHERE ID IN (
   SELECT ID
   FROM usrs
   WHERE name = 'John'
)

Với điều này đã nói, đối với ví dụ này, tôi không biết tại sao bạn muốn có một truy vấn con:

DELETE usrs WHERE name = 'John'

Chỉnh sửa căn cứ vào nhận xét. Để xóa khỏi nhiều bảng cùng một lúc, bạn có thể có nhiều DELETE hoặc bạn có thể sử dụng một cái gì đó như sau:

delete t1, t2, t3
from (select 'john' as usr) t
  left join t1 on t.usr=t1.usr
  left join t2 on t.usr=t2.usr
  left join t3 on t.usr=t3.usr


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Số lượng cột MySQL trên giá trị cụ thể

  2. Cách đánh giá hiệu suất của Moodle

  3. Hướng dẫn thiết kế cơ sở dữ liệu cho bản tin trong MySQL

  4. Chèn MySQL trên bản cập nhật trùng lặp cho khóa không phải CHÍNH

  5. java.sql.Connection mở rộng cho SSH