[sql] 서브쿼리에서의 데이터 조회 방법
서브쿼리(subquery)는 다른 쿼리 안에 포함된 쿼리를 말합니다. 서브쿼리를 사용하면 한 번의 쿼리 실행으로 여러 테이블 간의 연관된 데이터를 조회할 수 있습니다. 여기서는 서브쿼리를 사용하여 데이터를 조회하는 방법을 알아보겠습니다.
단일 행 서브쿼리
단일 행 서브쿼리는 결과로 하나의 행을 반환하는 서브쿼리입니다. 이 방법은 =
나 >
와 같은 비교 연산자와 함께 사용됩니다.
예를 들어, employees
테이블과 salaries
테이블이 있을 때, 직원의 연봉(salary)이 평균 연봉보다 높은 경우에 해당하는 데이터를 조회하기 위해 단일 행 서브쿼리를 사용할 수 있습니다.
SELECT *
FROM employees
WHERE salary > (SELECT AVG(salary) FROM salaries);
이 쿼리는 salaries
테이블에서 연봉의 평균을 계산하여 그 값과 비교하여 결과를 반환합니다.
다중 행 서브쿼리
다중 행 서브쿼리는 여러 행을 반환하는 서브쿼리입니다. IN
, ANY
, ALL
과 같은 비교 연산자와 함께 사용됩니다.
예를 들어, employees
테이블과 departments
테이블이 있을 때, 각 부서(department)별로 직원의 수가 일정 수 이상인 경우에 해당하는 데이터를 조회하기 위해 다중 행 서브쿼리를 사용할 수 있습니다.
SELECT *
FROM departments
WHERE department_id IN (SELECT department_id
FROM employees
GROUP BY department_id
HAVING COUNT(*) > 10);
이 쿼리는 각 부서별 직원 수를 계산하여 일정 수 이상인 경우에 해당하는 결과를 반환합니다.
서브쿼리를 사용하여 데이터를 조회하는 방법에 대해 간략히 살펴보았습니다. 서브쿼리는 복잡한 데이터 조회 요구사항을 간편하게 처리할 수 있는 강력한 도구입니다.
참고: MySQL 공식 문서