ホームページ >データベース >mysql チュートリアル >2 つの SQL テーブル間の不一致を特定するにはどうすればよいですか?

2 つの SQL テーブル間の不一致を特定するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-13 16:31:43787ブラウズ

How Can I Identify Discrepancies Between Two SQL Tables?

SQL テーブルを比較してデータの相違点を見つける

2 つの SQL Server テーブル間でデータの一貫性を確保するには、それぞれに固有の行を識別する必要があります。 これにより、データの不一致と欠落が強調表示されます。 SQL クエリを使用してこれを実現する方法は次のとおりです:

1 つのアプローチでは、EXCEPT 演算子を使用します。

(SELECT * FROM table1 EXCEPT SELECT * FROM table2)

このクエリは、table1 には存在するが、table2 には存在しない行を表示します。 table2 に固有の行を検索するには、テーブル名を交換するだけです:

(SELECT * FROM table2 EXCEPT SELECT * FROM table1)

両方のテーブルにわたるすべての一意の行を組み合わせて表示するには、UNION ALL:

を使用します。
<code class="language-sql">(SELECT * FROM table1 EXCEPT SELECT * FROM table2)
UNION ALL
(SELECT * FROM table2 EXCEPT SELECT * FROM table1)</code>

テーブルに NULL 値がない場合は、より効率的な方法で NOT EXISTS を使用します。この例では、table1 に見つからない行を table2 から取得します:

<code class="language-sql">SELECT *
FROM table1
WHERE NOT EXISTS (
    SELECT *
    FROM table2
    WHERE table2.column1 = table1.column1
)</code>

table1table2column1 を実際のテーブル名と列名に置き換えてください。 データとニーズに最適な方法を選択してください。

以上が2 つの SQL テーブル間の不一致を特定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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