リレーショナル データベースの領域では、多くの場合、1 つのテーブルに存在するが存在しないデータを分離する必要があります。別のところで。アンチ結合または左アンチセミ結合として知られるこの操作は、重複または冗長なレコードを除外する際に重要な役割を果たします。
MySQL でこのタスクを実行するには、次のようなアンチ結合クエリの使用を検討してください。 :
SELECT * FROM Table1 WHERE FirstName NOT IN (SELECT FirstName FROM Table2)
このクエリでは、FirstName 列が比較基準として使用されます。このクエリは、FirstName 値が Table2 に含まれないすべての行を Table1 から取得します。
たとえば、次の内容を含む 2 つのテーブル Table1 と Table2 があるとします。データ:
FirstName | LastName | BirthDate |
---|---|---|
Tia | Carrera | 1975-09-18 |
Nikki | Taylor | 1972-03-04 |
Yamila | Diaz | 1972-03-04 |
FirstName | LastName | BirthDate |
---|---|---|
Tia | Carrera | 1975-09-18 |
Nikki | Taylor | 1972-03-04 |
これらのテーブルに対してアンチ結合クエリを実行すると、次の結果が得られます次の出力:
+-----------+----------+------------+ | FirstName | LastName | BirthDate | +-----------+----------+------------+ | Yamila | Diaz | 1972-03-04 | +-----------+----------+------------+
この結果は、Yamila Diaz が Table1 には存在するが Table2 には存在しないことを示しています。
選択基準は、Table1 と Table2 の間にある共通の列に基づくことができることに注意してください。 2つのテーブル。たとえば、両方のテーブルに id フィールドがある場合、クエリは次のように書き換えることができます。
SELECT * FROM Table1 WHERE id NOT IN (SELECT id FROM Table2)
アンチ結合クエリを利用すると、一方のテーブルに存在するがテーブルから除外されているデータを効果的に識別して抽出できます。別の。この手法は、データ クレンジング、レコード調整、その他のデータ分析タスクに非常に役立ちます。
以上がMySQL で 1 つのテーブルに固有の行を検索するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。