【Mysql】#hy000you can’t specify target table ‘hoge’ for update in from clause の解決方法
MysqlでSQLを実行したら#hy000you can't specify target table 'hoge' for update in from clause
というエラーが出たので解決方法メモ。
エラー
以下のようなSQLを実行すると #hy000you can't specify target table 'hoge' for update in from clause
というエラーが出てきます。
|
|
原因
Mysqlのサブクエリで更新対象と同じテーブルを使用することが出できいとのこと。
テーブルを更新し、さらにサブクエリーで同じテーブルから選択することはできません。
MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.2.11 UPDATE 構文
おそらく、更新対象のサブクエリ内のテーブルの条件によっては無限ループのような事が発生し得るので制御してると思われます。
解決方法
サブクエリの中でさらにサブクエリを使用して select
文をラップします。
こうすることによって更新が可能になります。
|
|