欠落行の検索: テーブル専用のレコードの選択 (MySQL)
データ管理の領域では、次のような状況に遭遇することがあります。あるテーブル内にある、別のテーブルには存在しない行を識別する必要があります。これは、異なるデータ ソースを調整する必要がある場合や、データ検証を実行する必要がある場合に発生する可能性があります。
質問で概説されている、Table1 と Table2 に個人情報が含まれるシナリオを考えてみましょう。このタスクは、Table2 に存在しない行を Table1 から抽出することです。
列固有のサブクエリの使用
最初の試行で使用されたサブクエリ、SELECT * FROM Table1 WHERE * NOT IN (SELECT * FROM Table2) は、2 つのテーブル間のすべての列を比較しようとします。ただし、この方法は、特定の列に対して比較を行う必要があるため、正しくありません。
正しい方法:
一般的な方法の 1 つは、共通の列に基づいてサブクエリを実行することです。テーブル間の列。この例では、両方のテーブルに id 列があると仮定します。正しいサブクエリは次のとおりです。
SELECT * FROM Table1 WHERE id NOT IN (SELECT id FROM Table2)
その他の考慮事項:
データの複雑さとテーブル間の関係によっては、より高度なサブクエリを使用する必要がある場合があります。 JOIN 句や EXISTS 句の使用などの手法。サブクエリの構文と使用法に関する包括的な情報については、MySQL ドキュメントを参照してください。
以上がある MySQL テーブルで欠落している行を別の MySQL テーブルで見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。