免責事項:この記事はブロガーオリジナル記事ですが、許可ブロガーなく再生してはなりません。https://blog.csdn.net/weixin_39207535/article/details/88547757
デルMySQLとサブクエリを持つ更新は、この間違ったことを報告された場合
- > MYSQLで、記録は最初のテーブルを選択することはできませんので、これらの条件の下で更新すると、同じテーブル内のレコードを削除します
ソリューションは、あなたがエラーを回避するように、テーブルの真ん中で再びそれを選択し、次に得られた結果を選択し、そして、
この問題は、MySQLだけで発生し、MSSQLとOracleの問題は発生しません。
詳細については、SQLを参照してください。
元のエラーSQL:
UPDATE table_A SET status=1
WHERE A_id IN(
SELECT order_id FROM table_A_B WHERE B_id=23
)
SQLを変更した後:
UPDATE table_A SET status=1
WHERE A_id IN(
SELECT a.id FROM (
SELECT id FROM table_A_B WHERE B_id=23
) a)
内部サブサイクルの等価物は、別名を演じ