[sql] 서브쿼리에서 EXISTS 연산자의 활용 방법

서브쿼리(subquery)는 다른 쿼리 안에 중첩되어 있는 SELECT 문장을 말합니다. 서브쿼리에서 EXISTS 연산자를 사용하면 외부 쿼리와 내부 쿼리 간의 관계를 확인하고 조건을 만족하는지 여부를 판단할 수 있습니다.

EXISTS 연산자란?

EXISTS 연산자는 서브쿼리에서 결과 집합이 비어 있지 않을 때 TRUE를 반환하며, 그렇지 않으면 FALSE를 반환합니다. 주어진 조건을 만족하는 레코드가 존재하는지 여부를 확인할 때 특히 유용합니다.

다음은 EXISTS 연산자의 기본 구조입니다.

SELECT column1, column2, ...
FROM table_name
WHERE EXISTS (subquery);

EXISTS 연산자의 활용

예를 들어, 주문 테이블에서 특정 상품을 주문한 고객들을 조회하고 싶다고 가정해봅시다. 이때 EXISTS 연산자를 사용하여 해당 상품을 주문한 고객들을 확인할 수 있습니다.

SELECT *
FROM customers
WHERE EXISTS (SELECT *
              FROM orders
              WHERE customers.customer_id = orders.customer_id
              AND orders.product_id = '12345');

위 쿼리는 customers 테이블에서 orders 테이블과의 연관성을 EXISTS 연산자를 사용하여 확인합니다. 주문 테이블에서 특정 상품을 주문한 고객들의 정보를 가져옵니다.

결론

EXISTS 연산자는 서브쿼리를 사용하여 외부 쿼리와 내부 쿼리 간의 관계를 확인할 때 유용합니다. 이를 활용하여 특정 조건을 만족하는 레코드가 존재하는지 여부를 판단할 수 있습니다.