2025-08-27 23:49
Tags: SQL
서브쿼리
-
쿼리 안에 쿼리로 하나로만 가져오기 어려운 상황에서 사용
-
스칼라 서브쿼리 (Scalar Subquery)
- 단 하나의 값(하나의 행, 하나의 열)을 반환하는 서브쿼리
SELECT
절,WHERE
절,HAVING
절 등 단일 값이 들어갈 수 있는 대부분의 위치에서 사용SELECT name, salary, salary - (SELECT AVG(salary) FROM employees) AS salary_difference FROM employees;
-
인라인 뷰 (Inline View)
- 테이블 형태의 결과(여러 행, 여러 열)를 반환하는 서브쿼리
- 주로
FROM
절에서 사용.FROM
절에 테이블 이름 대신 서브쿼리를 사용하여, 마치 하나의 테이블처럼 다룰 수 있음SELECT d.department_name, e_avg.avg_salary FROM departments d JOIN (SELECT department_id, AVG(salary) AS avg_salary FROM employees GROUP BY department_id) AS e_avg ON d.department_id = e_avg.department_id;
-
중첩 서브쿼리 (Nested Subquery)
- 주로
WHERE
절에서 다른 연산자(IN
,NOT IN
,EXISTS
,ANY
,ALL
등)와 함께 사용되어, 조건절의 일부로 작동하는 서브쿼리 WHERE
절,HAVING
절에서 조건 비교를 위해 사용
- 주로