sql >> データベース >  >> RDS >> Mysql

FROM句でUPDATEのターゲットテーブルを指定できません

    サブクエリでラップします(したがって、結果の一時テーブルを作成します )。 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. OracleLEASTと同等のSQLServer?

    2. CSVからMySQLにデータをインポートするにはどうすればよいですか?

    3. 2つのテーブルからSumを取得するにはどうすればよいですか?

    4. 親行を削除または更新できません:外部キー制約が失敗します