ホームページ > データベース > mysql チュートリアル > 左の結合、存在するか、サブクリーリーに存在しないかを使用してSQLで孤児行を削除する方法は?

左の結合、存在するか、サブクリーリーに存在しないかを使用してSQLで孤児行を削除する方法は?

Linda Hamilton
リリース: 2025-01-24 22:35:13
オリジナル
562 人が閲覧しました

How to Delete Orphan Rows in SQL Using LEFT JOIN, EXISTS, or NOT IN Subqueries?

sqlを使用して、一致せずに行を削除します

関係データベースで複数のテーブルを処理する場合、1つのテーブルの1つのテーブルで対応する一致せずに行を識別および削除する必要がある場合があります。このプロセスは通常、「分離エントリの削除」と呼ばれます。

次のシーンを検討してください:

「ファイル」と「ブロブ」という2つのテーブルがあり、そのうち「files.id」を使用して「blob.fileid」に接続できます。
  • 目標は、「blob」テーブルの「blob」テーブルの「id」値と一致しないすべての行を削除することです。
  • このため、さまざまなSQLメソッドを使用できます。
左結合を使用し、null

です

sub -query

の使用
<code class="language-sql">DELETE b FROM BLOB b
LEFT JOIN FILES f ON f.id = b.fileid
WHERE f.id IS NULL</code>
ログイン後にコピー
で使用しないでください
<code class="language-sql">DELETE FROM BLOB
WHERE NOT EXISTS(SELECT NULL
                    FROM FILES f
                   WHERE f.id = fileid)</code>
ログイン後にコピー
注:

可能であれば、事故が発生したときに変更するために変更することを選択できるように、トランザクションで削除操作を実行することをお勧めします。

以上が左の結合、存在するか、サブクリーリーに存在しないかを使用してSQLで孤児行を削除する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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