본문 바로가기

자격증고나리/⚽ SQLD 슈웃

[SQL] NOT EXISTS

NOT EXISTS

주로 서브쿼리와 함께 사용되며 서브쿼리의 결과가 존재하지 않을 때 해당 조건을 만족하는 행을 검색하는 데 사용됨

(= 서브쿼리에 데이터가 존재하지 않을 경우 데이터가 조회된다.)

 

예를 들어,

주문(Order) 테이블에서 아직 발송되지 않은 주문을 선택하는 SQL 쿼리를 작성할 때,

SELECT OrderID, CustomerID
FROM Orders
WHERE NOT EXISTS (
    SELECT 1
    FROM Shipments
    WHERE Shipments.OrderID = Orders.OrderID
);

 

여기서 SELECT 문에 1을 사용하면 해당 테이블의 개수만큼 1로 된 행을 출력

1은 TRUE를 의미하며 값의 존재유무(조건을 만족하는 결과가 있는지 여부)가 더 중요하기 때문에

간편하게 1을 적어줌

 

 

반대로, 

EXISTS() 는 서브쿼리의 결과가 하나라도 참이면 TRUE 반환