ホームページ >データベース >mysql チュートリアル >MySQL で INTERSECT 操作をシミュレートするにはどうすればよいですか?

MySQL で INTERSECT 操作をシミュレートするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-13 18:44:11843ブラウズ

How Can I Simulate the INTERSECT Operation in MySQL?

MySQL Intersect への代替アプローチ

MySQL データベースには、両方の結果で見つかった値を識別するために使用される独自の関数である INTERSECT 操作がありません。セット。それにもかかわらず、同様の結果を達成する別の方法があります。

方法 1: DISTINCT を使用した INNER JOIN

INNER JOIN を使用して INTERSECT 操作をエミュレートするには、次の手順に従います。

  • ベースの 2 つのテーブル間の INNER JOIN を作成します。
  • 結果セットから重複する値を削除するには、DISTINCT キーワードを使用します。

このメソッドにより、両方のテーブルに存在する一意の値のみが比較されます。

方法 2: WHERE ... IN を使用してDISTINCT

または、WHERE ... IN 句で DISTINCT キーワードを指定したサブクエリを使用して、同じ結果を得ることができます。

  • DISTINCT 値を 1 つから選択します。
  • IN 演算子を使用して、他のテーブルの値をテーブルの値と比較します。サブクエリを使用して、一致する値のみが取得されるようにします。

例:

次のデータを含む 2 つのテーブル、table_a と table_b があるとします。

table_a table_b
1, A 1, B
2, B
3, B

DISTINCT を使用した INNER JOIN を使用して両方のテーブルに存在する値を検索するには、次のクエリを実行できます:

SELECT DISTINCT value
FROM table_a
INNER JOIN table_b
USING (value);

同様に、WHERE ... IN を DISTINCT とともに使用すると、

SELECT DISTINCT value
FROM table_a
WHERE (value) IN (SELECT DISTINCT value FROM table_b);

これらのクエリはどちらも次の結果を返します:

value
B

以上がMySQL で INTERSECT 操作をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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