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

テーブルは、「UPDATE」のターゲットとmysqlのデータの個別のソースの両方として2回指定されます

    これは典型的なMySQLのことであり、通常、派生したテーブルから、つまり

    の代わりに選択することで回避できます。
    FROM manager AS m2
    

    使用

    FROM (select * from manager) AS m2
    

    完全なステートメント:

    UPDATE manager
    SET status = 'Y'
    WHERE branch_id IN
    (
      select branch_id
      FROM (select * from manager) AS m2
      WHERE (branch_id, year) IN
      (
        SELECT branch_id, year
        FROM branch_master
        WHERE type = 'finance'
      )
    );
    


    1. MySQL INSERTパラメーターを使用したC#

    2. インデックス付きビューとMERGEを使用している場合は、こちらをお読みください。

    3. Atomic UPDATE..PostgresのSELECT

    4. Windowsxamppでlower_case_table_names=2の値を変更する場所