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

MySQL-ネストされたselectがそのテーブルを使用しているときにテーブルから削除するにはどうすればよいですか?

    おそらくこのエラーが発生しています:

    ERROR 1093 (HY000): You can't specify target table 'table_1' for update in FROM clause.
    

    これは、MySQLの複数テーブルDELETE 代わりに構文:

    DELETE table_1.*
    FROM   table_1,
           table_2,
           table_3
    WHERE  table_1.id = table_2.table_1_id
    AND    table_2.id = table_3.table_2_id
    AND    table_3.id = 5
    

    上記のクエリは機能するはずですが、原則として、代わりにANSIJOIN構文を使用することをお勧めします。

    DELETE table_1.*
    FROM   table_1
    INNER JOIN table_2 on table_2.table_1_id = table_1.id
    INNER JOIN table_3 on table_3.table_2_id = table_2.id
    WHERE table_3.id = 5
    



    1. MySqlDataReaderGetBytesバッファの問題...

    2. MySQLデータベースの実際のサイズを取得する方法は?

    3. 既存のユーザーをエクスポートおよびインポートする方法(その特権を使用して!)

    4. MySQLで過去15日間のレコードを取得する方法