[sql] INTERSECT 연산자를 사용한 특정 테이블과의 교집합 조회 방법

데이터베이스에서 교집합을 구할 때 INTERSECT 연산자를 사용할 수 있습니다. 이 연산자를 사용하면 두 개의 SELECT 문의 결과에서 공통된 레코드만을 반환할 수 있습니다.

아래는 INTERSECT 연산자를 사용하여 특정 테이블과의 교집합을 조회하는 방법에 대한 예시입니다.

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

위 예시에서 table1table2는 교집합을 구하고자 하는 두 개의 테이블을 나타냅니다. column1, column2, …은 교집합을 구할 때 반환할 컬럼들입니다.

예를 들어, Customers 테이블과 Orders 테이블에서 공통된 고객 정보를 조회하고 싶을 때, 아래와 같이 쿼리를 작성할 수 있습니다.

SELECT CustomerID, CustomerName
FROM Customers
INTERSECT
SELECT CustomerID, CustomerName
FROM Orders;

위 쿼리 결과로는 Customers 테이블과 Orders 테이블에서 공통된 CustomerIDCustomerName 컬럼 값을 가진 레코드들이 반환됩니다.

INTERSECT 연산자를 사용하여 교집합을 구할 때, 주의해야 할 점은 반환되는 레코드는 중복을 허용하지 않는다는 것입니다. 즉, table1table2 모두에 동일한 레코드가 여러 개 존재하더라도, 교집합 결과에서는 중복된 레코드는 한 번만 나타납니다.

이와 같이 INTERSECT 연산자를 사용하여 특정 테이블과의 교집합을 조회할 수 있습니다.


참고 문서: Microsoft Docs - INTERSECT Operator