SQL에서 서브쿼리(Subquery)는 하나의 쿼리 내에 포함된 또 다른 쿼리입니다. 서브쿼리는 주로 메인 쿼리의 조건을 만족시키기 위해 사용되며, 다양한 방식으로 활용될 수 있습니다. 이번에도 서브쿼리의 다양한 유형을 설명하고, 각각의 쿼리와 결과를 표 형식으로 제시하겠습니다.
EmployeeID | Name | DepartmentID | Salary |
---|---|---|---|
1 | John | 10 | 5000 |
2 | Jane | 20 | 6000 |
3 | Alice | 30 | 7000 |
4 | Bob | 20 | 5500 |
DepartmentID | DepartmentName |
---|---|
10 | HR |
20 | IT |
30 | Finance |
40 | Marketing |
설명: 서브쿼리를 WHERE
절에서 사용하여, 메인 쿼리의 필터 조건을 제공할 수 있습니다. 예를 들어, 특정 조건을 만족하는 데이터를 선택할 때 유용합니다.
쿼리: IT 부서에 속한 직원들의 정보를 조회하는 쿼리
sql코드 복사
SELECT EmployeeID, Name, Salary
FROM Employees
WHERE DepartmentID = (SELECT DepartmentID FROM Departments WHERE DepartmentName = 'IT');
결과:
EmployeeID | Name | Salary |
---|---|---|
2 | Jane | 6000 |
4 | Bob | 5500 |
Departments
테이블에서 DepartmentName
이 'IT'인 부서의 DepartmentID
를 반환합니다. 메인 쿼리는 이 DepartmentID
를 가진 직원들을 필터링하여 반환합니다.설명: 서브쿼리를 SELECT
절에서 사용하면, 각 행에 대해 계산된 값을 반환할 수 있습니다. 예를 들어, 각 직원의 부서명을 조회할 때 사용할 수 있습니다.
쿼리: 각 직원의 부서명을 포함한 정보를 조회하는 쿼리
sql코드 복사
SELECT Name, Salary, (SELECT DepartmentName FROM Departments WHERE DepartmentID = Employees.DepartmentID) AS DepartmentName
FROM Employees;
결과:
Name | Salary | DepartmentName |
---|---|---|
John | 5000 | HR |
Jane | 6000 | IT |
Alice | 7000 | Finance |
Bob | 5500 | IT |
DepartmentID
에 해당하는 부서명을 반환하며, 메인 쿼리의 결과에 포함됩니다.