1. IN함수를 사용한 다중행 서브쿼리
SELECT * FROM employees
WHERE department_id
IN (SELECT department_id FROM departments WHERE department_name = 'Sales');
IN 연산자를 사용해서 서브쿼리의 결과중 일치하는 경우를 찾는다.
예를들어 위 쿼리가있다.
위 쿼리는 employees 테이블에서 sales부서에 속한 직원을 찾는 쿼리이다.
EXISTS함수를 사용한 다중 행 서브쿼리
SELECT * FROM orders o
WHERE EXISTS (SELECT 1 FROM order_status os WHERE os.order_id = o.order_id AND os.status = 'Pending');
EXISTS 연산자를 사용해서 서브쿼리의 결과가 존재하는지 확인한다.
위쿼리는 orders테이블에서 pending과 일치하는 주문이 있는 경우를 찾기위해 order_status테이블에 주문id가있는지 확인하는 쿼리이다.
ANY및 ALL함수를 사용한 다중 행 서브쿼리
SELECT category_name
FROM categories c
WHERE 500 > ALL (SELECT price FROM products p WHERE p.category_id = c.category_id);
ANY및 ALL 연산자를 사용하여 서브쿼리의 결과와 조건을 비교할수있다.
위쿼리는 products 테이블에서 제품가격이 어떤 카테고리의 제품중 가장 높은지 찾는 쿼리이다.