SQLのINTERSECT演算子の使い方

SQL の INTERSECT オペレータは、2 つ以上の SELECT ステートメントの結果から共通行を戻すために使用されます。

INTERSECT 演算子の構文は以下のとおりです。

SELECT column1, column2, ...
FROM table1
INTERSECT
SELECT column1, column2, ...
FROM table2;

table1とtable2の結果セットから重複する行、つまり両方の結果セットにある行のみを返します。返される結果セットの行には同じ列と値があります。

INTERSECT演算子は重複する行を含む場合結果行を1行のみ返却することに注意してください。すべての重複行を返却するにはUNION ALL演算子を使用できます。

INTERSECT演算子の使い方を示す例を次に示します。

顧客と注文の2つのテーブルがあると仮定しましょう。共通する行、つまり顧客でありかつ注文である行を検索するには、次のクエリを使用します。

SELECT customer_id
FROM Customers
INTERSECT
SELECT customer_id
FROM Orders;

顧客 ID および注文が同じ重複行を返します。

注意:INTERSECT は SQL 標準の一部ですが、すべてのデータベースシステムがその演算子をサポートしているわけではありません。そのため、INTERSECT を使用する前に、使用中のデータベースシステムのドキュメントを確認してサポートされることを確認する必要があります。INTERSECT がサポートされていない場合は、INNER JOIN や EXISTS サブクエリなど、他の方法を使用してその機能をエミュレートできます。

bannerAds