학습일기 day23 - sql 다중 행 서브쿼리

이건구·2023년 9월 22일
0

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 테이블에서 제품가격이 어떤 카테고리의 제품중 가장 높은지 찾는 쿼리이다.

0개의 댓글