Mysql
 sql >> база данни >  >> RDS >> Mysql

не може да посочи целева таблица за UPDATE в клаузата FROM

увийте го в подзаявка (по този начин създавайки временна таблица за резултата ). Също така препоръчвам да използвате ANSI SQL-92 формат.

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
);

или като използвате 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. Сесията на MySQL Workbench не вижда актуализации на базата данни

  2. Експортирайте прости данни от Excel в MySQL с помощта на PHP

  3. Искам mysql таблицата да поддържа два езика

  4. Защо резултатите от SELECT се различават между mysql и sqlite?

  5. Сортирането на колона VARCHAR като FLOAT с помощта на оператора CAST не работи в MySQL