[sql] INTERSECT 연산자를 사용한 두 개 이상의 테이블 멤버십 검사 방법

SQL에서 INTERSECT 연산자는 두 개 이상의 SELECT 문의 결과를 비교하여 공통된 결과만 반환하는 역할을 합니다. 이를 활용하여 테이블 멤버십을 검사하는 방법을 알아보겠습니다.

일반적으로 INTERSECT 연산자를 사용하여 두 개의 테이블 멤버십을 검사할 수 있습니다. 예를 들어, “Members” 테이블과 “VIPMembers” 테이블이 있다고 가정해 보겠습니다. “Members” 테이블에는 모든 회원의 정보가 포함되어 있고, “VIPMembers” 테이블에는 VIP 회원의 정보만 포함되어 있습니다. 이때, 두 테이블에서 공통된 회원 정보를 찾고 싶다면 다음과 같이 SQL문을 작성할 수 있습니다.

SELECT member_id, member_name
FROM Members
INTERSECT
SELECT member_id, member_name
FROM VIPMembers;

위의 SQL문은 “Members” 테이블과 “VIPMembers” 테이블에서 동일한 member_id와 member_name을 가지고 있는 회원 정보를 반환합니다.

또한, INTERSECT 연산자를 사용하여 두 개 이상의 테이블 멤버십을 검사할 수도 있습니다. 예를 들어, “Orders” 테이블과 “Products” 테이블이 있다고 가정해 보겠습니다. “Orders” 테이블에는 주문 내역 정보가 포함되어 있고, “Products” 테이블에는 판매하는 제품 정보가 포함되어 있습니다. 이때, 특정 제품을 주문한 회원들을 찾기 위해서는 다음과 같이 SQL문을 작성할 수 있습니다.

SELECT member_id, member_name
FROM Members
WHERE member_id IN (
    SELECT member_id
    FROM Orders
    WHERE product_id IN (
        SELECT product_id
        FROM Products
        WHERE product_name = '휴대폰'
    )
);

위의 SQL문은 “Orders” 테이블에서 ‘휴대폰’이라는 제품을 주문한 회원들의 member_id를 찾은 후, 해당 회원들의 정보를 “Members” 테이블에서 가져옵니다.

INTERSECT 연산자를 활용하여 테이블 멤버십을 검사하는 방법에 대해 알아보았습니다. INTERSECT 연산자는 공통된 결과를 반환하기 때문에 멤버십 검사 등에서 유용하게 활용할 수 있습니다.