ホームページ > データベース > mysql チュートリアル > MySQL で複数のテーブルの行を正しく削除するにはどうすればよいですか?

MySQL で複数のテーブルの行を正しく削除するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-19 10:26:10
オリジナル
179 人が閲覧しました

How to Correctly Delete Rows Across Multiple Tables in MySQL?

MySQL のクロステーブル削除: 構文エラーのトラブルシューティング

MySQL では、複数のテーブルから行を同時に削除するには、特別なクエリ構文が必要です。次の削除クエリを実行しようとすると:

<code class="language-sql">DELETE FROM `pets` p,
            `pets_activities` pa
      WHERE p.`order` > :order
        AND p.`pet_id` = :pet_id
        AND pa.`id` = p.`pet_id`</code>
ログイン後にコピー

次のエラーが発生する場合があります:

<code>Uncaught Database_Exception [ 1064 ]: You have an error in your SQL syntax; check the manual...</code>
ログイン後にコピー

このエラーは、テーブル間の削除における構文エラーが原因で発生します。この問題を解決するには、DELETE ステートメントで JOIN を使用します:

<code class="language-sql">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</code>
ログイン後にコピー

また、pets_activities テーブルからのみ削除するには、以下を使用できます:

<code class="language-sql">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</code>
ログイン後にコピー

このように JOIN ステートメントを使用すると、MySQL でテーブル間の削除操作を効率的に実行できます。このアプローチは、参照整合性を備えた単一テーブルの削除にも機能することに注意してください。

以上がMySQL で複数のテーブルの行を正しく削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート