Mysql
 sql >> Baza danych >  >> RDS >> Mysql

nie można określić tabeli docelowej dla UPDATE w klauzuli FROM

zapakuj go w podzapytanie, (tworząc w ten sposób tabelę tymczasową dla wyniku ). Zalecam również użycie ANSI SQL-92 format.

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

lub używając 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. Jak zainstalować MySQL na macOS

  2. Biblioteka błędów pasażera nie została załadowana

  3. Czy masz już inny serwer mysqld działający na porcie:3306 Ubuntu?

  4. odpowiedniki onbeforeprint() i onafterprint() dla przeglądarek innych niż IE

  5. MySQL liczy pasujące słowa