32.SQL EXISTS
EXISTS 연산자는 하위 쿼리에 레코드가 존재하는지 테스트하는 데 사용합니다.
EXISTS 하위 쿼리가 *하나 이상의 레코드를 반환하면 연산자는 TRUE 를 반환합니다.
중요한건 EXISTS 에 명시된 쿼리는 앞 FROM에 명시된 쿼리의 데이터를 사용할 수 있다는것
EXISTS 구분
SEELCT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);
데모 데이터베이스
Product 테이블에서 선택한 내용
ProductIDProductNameSupplierIDCategoryIDUnitPrice
1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 |
2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19 |
3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10 |
4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22 |
5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.3 |
Supplier 테이블에서 선택한 내용
SupplierIDSupplierNameContactNameAddressCityPostalCodeCountry
1 | Exotic Liquid | Charlotte Cooper | 49 Gilbert St. | London | EC1 4SD | UK |
2 | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | 70117 | USA |
3 | Grandma Kelly's Homestead | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | USA |
4 | Tokyo Traders | Yoshi Nagase | 9-8 Sekimai Musashino-shi | Tokyo | 100 | Japan |
SQL EXISTS 예제
다음 SQL 문은 TRUE 를 반환하고 제품 가격이 20미만인 공급업체를 나열합니다.
예
SELECT SupplierName
FROM Suppliers
WHERE EXISTS(
SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Prict < 20
);
다음 SQL 문은 TRUE를 반환하고 제품가격이 22인 공급업체를 나열합니다.
SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price = 22);
'SQL > SQL Tutorial' 카테고리의 다른 글
31.SQL HAVING (0) | 2024.07.29 |
---|---|
30.SQL GROUP BY (0) | 2024.07.25 |
29.SQL UNION (1) | 2024.07.24 |
28.SQL SELF JOIN (0) | 2024.07.18 |
27.SQL FULL OUTER JOIN (0) | 2024.07.17 |