[sql] NOT EXISTS 서브쿼리

NOT EXISTS 서브쿼리는 주어진 조건을 만족하지 않는 결과를 리턴하는 SQL 쿼리에서 사용되는 하위 쿼리(Subquery) 유형 중 하나입니다. 이것은 메인 쿼리의 결과 집합에 존재하지 않는 특정 레코드를 찾을 때 유용합니다.

NOT EXISTS 서브쿼리의 구문

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

NOT EXISTS 서브쿼리는 메인 쿼리의 각 행에 대해 서브쿼리가 반환하는 결과 행이 없을 때 조건을 만족합니다.

NOT EXISTS 서브쿼리의 예제

예를 들어, orders 테이블에서 아직 발송되지 않은 주문들을 찾기 위해 다음과 같이 사용할 수 있습니다.

SELECT order_id, customer_id
FROM orders o
WHERE NOT EXISTS (
    SELECT 1
    FROM shipping s
    WHERE s.order_id = o.order_id
);

이렇게하면 주문 테이블에서 발송 테이블과 조인을 하지 않고도 아직 발송되지 않은 주문의 목록을 얻을 수 있습니다.

위의 예제에서 NOT EXISTS 서브쿼리는 shipping 테이블에 주문 ID가 없는 경우에만 조건을 만족하는 레코드를 리턴합니다.

이렇게 NOT EXISTS 서브쿼리를 사용하여 데이터베이스에서 원하는 결과를 얻을 수 있습니다.

더 많은 정보를 원하시면 아래의 참조를 확인해보세요.

참조