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

MySQLの複数のテーブルから削除するにはどうすればよいですか?

    JOINを使用する DELETEで ステートメント。

    DELETE p, pa
          FROM pets p
          JOIN pets_activities pa ON pa.id = p.pet_id
         WHERE p.order > :order
           AND p.pet_id = :pet_id
    

    または、...

    を使用することもできます
    DELETE pa
          FROM pets_activities pa
          JOIN pets p ON pa.id = p.pet_id
     WHERE p.order > :order
       AND p.pet_id = :pet_id
    

    ... pets_activitiesからのみ削除する

    これ を参照してください 。

    単一のテーブルを削除する場合でも、参照整合性を使用する場合は、EXISTSを使用する他の方法があります。 、NOT EXISTSINNOT IN など。ただし、FROMの前にエイリアスを使用して削除するテーブルを指定する上記のテーブル 句を使用すると、かなり狭い場所から簡単に抜け出すことができます。私はEXISTSに連絡する傾向があります 99%のケースで、このMySQL構文が1日かかる1%があります。



    1. 採用システム用のデータベースの設計

    2. MySQLおよびGROUP_CONCAT()の最大長

    3. 階層的に定義されたデータセットのフラット化されたテーブル/ビューの作成

    4. MySQLの区切り文字