MySQL Intersect への代替アプローチ
MySQL データベースには、両方の結果で見つかった値を識別するために使用される独自の関数である INTERSECT 操作がありません。セット。それにもかかわらず、同様の結果を達成する別の方法があります。
方法 1: DISTINCT を使用した INNER JOIN
INNER JOIN を使用して INTERSECT 操作をエミュレートするには、次の手順に従います。
このメソッドにより、両方のテーブルに存在する一意の値のみが比較されます。
方法 2: WHERE ... IN を使用してDISTINCT
または、WHERE ... IN 句で DISTINCT キーワードを指定したサブクエリを使用して、同じ結果を得ることができます。
例:
次のデータを含む 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 サイトの他の関連記事を参照してください。