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

MySQL の INTERSECT 演算子機能をレプリケートするにはどうすればよいですか?

DDD
リリース: 2024-12-25 09:07:32
オリジナル
780 人が閲覧しました

How to Replicate MySQL's INTERSECT Operator Functionality?

MySQL の INTERSECT 演算子と同等

SQL INTERSECT 演算子は、クエリの両方のセクションで発生する一致する値を識別して返すために使用されます。 。ただし、この演算子は MySQL ではネイティブにサポートされていません。

代替アプローチ

MySQL で INTERSECT 演算子の機能を実現するには、いくつかの代替方法を使用できます。

  • INNER JOIN の使用DISTINCT:
SELECT DISTINCT table_a.column
FROM table_a
INNER JOIN table_b ON table_a.column = table_b.column;
ログイン後にコピー
  • WHERE ... IN および DISTINCT:
SELECT DISTINCT table_a.column
FROM table_a
WHERE table_a.column IN (SELECT table_b.column FROM table_b);
ログイン後にコピー

次の点を考慮してくださいINTERSECT 演算子を使用したクエリ:

(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='恐慌') )
ログイン後にコピー

このクエリは、ID が 3、cut_name が「全プロセス」と「恐怖」の両方である「emovis_reporting」テーブルからレコードを取得します。

MySQL の同等物

このクエリを実装するにはINNER JOIN メソッドを使用する MySQL:

SELECT DISTINCT *
FROM emovis_reporting AS a
INNER JOIN emovis_reporting AS b ON a.id = b.id
WHERE a.id = 3
  AND a.cut_name = '全プロセス'
  AND b.cut_name = '恐慌';
ログイン後にコピー

WHERE ... IN および DISTINCT メソッドを使用する:

SELECT DISTINCT *
FROM emovis_reporting
WHERE id = 3
  AND cut_name = '全プロセス'
  AND cut_name IN (SELECT cut_name FROM emovis_reporting WHERE cut_name = '恐慌');
ログイン後にコピー

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート