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

không thể chỉ định bảng mục tiêu cho UPDATE trong mệnh đề FROM

bọc nó trong một truy vấn con, ( do đó tạo một bảng tạm thời cho kết quả ). Tôi cũng khuyên bạn nên sử dụng ANSI SQL-92 định dạng.

update table3 d 
set    status = 'Complete'
where  d.id in 
(
    SELECT ID
    FROM
    (
        select  b.id 
        from    table1 a 
                INNER JOIN table3 b
                    ON a.id = b.table1_id
                INNER JOIN table2 c
                    ON c.id = b.table2_id
        where   c.examId = 16637 and 
                a.id in (46,47,48,49) 
    ) xx
);

hoặc bằng cách sử dụng JOIN

update  table3 d 
        INNER JOIN
        (
            SELECT ID
            FROM
            (
                select  b.id 
                from    table1 a 
                        INNER JOIN table3 b
                            ON a.id = b.table1_id
                        INNER JOIN table2 c
                            ON c.id = b.table2_id
                where   c.examId = 16637 and 
                        a.id in (46,47,48,49) 
            ) xx
        ) y ON d.id = y.id
set status = 'Complete'



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. asp.net lưu trữ các vai trò trong phiên Roles.AddUsertoRole (không phải thứ tôi đang tìm kiếm?)

  2. Cách tối ưu hóa MySQL Views

  3. Thay đổi mã hóa ký tự MySQL. Dữ liệu có được bảo toàn toàn vẹn không?

  4. các thành phố và khoảng cách theo vĩ độ-kinh độ

  5. dịch vụ MySQL trên máy tính cục bộ bắt đầu và sau đó dừng lại