ホームページ >データベース >mysql チュートリアル >左の結合を使用してSQLで孤児行を削除する方法は、存在するかどうか、または入りませんか?

左の結合を使用してSQLで孤児行を削除する方法は、存在するかどうか、または入りませんか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-24 22:37:10444ブラウズ

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

sqlテーブルで一致しない行を削除

sqlテーブルの孤児エントリを削除します。識別表には、別のテーブルに対応する一致する行がないことです。以下を検討してください:

2つのテーブルがあります:

ファイル:
    ID列が含まれています。
  • テーブルBLOB:FileID列が含まれています。
  • fileIDおよびID列を接続テーブルに使用できます。あなたの目標は、Table.idにあるすべての行をテーブルブロブに削除することです。
  • このタスクには、3つの主な方法があります。
左join/is null:

を使用します

存在しない:

使用しないでください:
<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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。