DB & SQL

MySQL EXISTS / NOT EXISTS

pms93 2023. 1. 12. 14:57

EXISTS연산자는 서브쿼리를 통해 데이터 존재 유/무를 파악하여 실행된다.

SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName
                             FROM Products
                             WHERE Suppliers.SupplierID = Products.SupplierID AND
                                           Price > 10)

- Suppliers에 저장된 각 행을 Subquery와 비교 후 조건에 일치한다면 레코드 반환, 일치하지 않는다면 다음 행으로 넘어간다.

( W3Schools Demo Database 인용 )

 

앞에 NOT을 붙여 사용하면 EXISTS와 반대가 된다.

SELECT SupplierName
FROM Suppliers
WHERE NOT EXISTS (SELECT ProductName
                                      FROM Products
                                      WHERE Suppliers.SupplierID = Products.SupplierID AND
                                                     Price < 10)

- Suppliers에 저장된 각 행을 Subquery와 비교 후 조건에 일치하지 않는다면 레코드 반환, 일치한다면 다음 행으로 넘어간다.

(W3Schools Demo Database 인용 )