テーブルを作成し、それを同じクエリ内でデータ ソースとして参照すると、「テーブルが 2 回指定されています」というエラーが発生する場合があります。このエラーは、同じテーブルが UPDATE ステートメントのターゲットであり、更新条件を決定するために使用されるサブクエリ内で別のテーブルとして表示される場合に発生します。
このエラーを解決して目的のテーブルを正常に更新するには、次の手順に従ってください。手順:
SELECT m2.branch_id FROM manager AS m2 WHERE (m2.branch_id, m2.year) IN (...)
SELECT * FROM (SELECT m2.branch_id FROM manager AS m2 WHERE (m2.branch_id, m2.year) IN (...)) AS subquery
UPDATE manager SET status = 'Y' WHERE branch_id IN ( SELECT branch_id FROM subquery );
派生テーブルを使用することで、マネージャー テーブルをターゲットとデータ ソースの両方として指定し、「テーブルが 2 回指定されています」エラーを解決します。この手法により、サブクエリが 1 回だけ参照されるようになり、UPDATE ステートメントが正常に実行されるようになります。
以上がMySQL UPDATE クエリで「テーブルが 2 回指定されています」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。