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

MySQL | FROM句で更新対象のテーブル'a'を指定することはできません

    テーブルから削除して、サブクエリで同じテーブルを参照することはできません。MySQLの制限にすぎません。次のようなものが機能するはずです:

    DELETE FROM table_a 
    USING table_a
    INNER JOIN table_b
        ON table_a.code = table_b.code
        AND table_b.id = table_a.b_id
        AND table_b.table = 'testTable'
    WHERE table_a.object_id = 1 
        AND table_a.code = 'code' 
    

    重要な部分はUSING 。 2つのテーブルを結合するだけで、両方からレコードが削除されます。 USING MySQLにこれらのテーブルを処理に使用するように指示しますが、FROMのテーブルからのみ削除します 条項。

    http://dev.mysql.com/doc/refman/5.0 /en/delete.html



    1. PostgreSQL列挙型をJPAおよびHibernateでマッピングする方法

    2. InnoDBのパフォーマンスの調整

    3. Springデータのエンティティにスキーマ名を追加しますか?

    4. SQLServerのタイムスタンプ列を日時形式に変換する方法