ホームページ >データベース >mysql チュートリアル >MySQL で INTERSECT 演算子の機能を複製するにはどうすればよいですか?

MySQL で INTERSECT 演算子の機能を複製するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-28 06:24:15528ブラウズ

How to Replicate the INTERSECT Operator's Functionality in MySQL?

MySQL の Intersect 演算子の代替

Microsoft SQL Server にある INTERSECT 演算子は、両方のクエリ結果に表示される重複した値を返します。 。 MySQL にはこの演算子がないため、代替アプローチが必要です。

MySQL の代替手段

MySQL で INTERSECT と同じ機能を実現するには、次の使用を検討してください。

  • DISTINCT による INNER JOIN: を選択します2 つのテーブルの結合からの個別の値。
SELECT DISTINCT value FROM table_a
INNER JOIN table_b
USING (value);
  • WHERE ... IN with DISTINCT: 最初のテーブルのレコードを、 2 番目のテーブル。
SELECT DISTINCT value FROM table_a
WHERE (value) IN (SELECT value FROM table_b);

例クエリ

次のクエリを考えてみましょう:

(SELECT * FROM emovis_reporting WHERE (id=3 AND cut_name= '全プロセス' AND cut_name='恐慌') ) 
INTERSECT
( SELECT * FROM emovis_reporting WHERE (id=3) AND ( cut_name='全プロセス' OR cut_name='恐慌') )

DISTINCT で INNER JOIN を使用する MySQL の代替:

SELECT DISTINCT * FROM emovis_reporting
INNER JOIN (SELECT * FROM emovis_reporting WHERE ID=3 AND cut_name='全プロセス') AS t1
ON cut_name='恐慌';

WHERE ... IN を使用した MySQL の代替案区別:

SELECT DISTINCT * FROM emovis_reporting
WHERE (id, cut_name) IN (
  SELECT id, cut_name FROM emovis_reporting
  WHERE>

以上がMySQL で INTERSECT 演算子の機能を複製するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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