별칭이 표시된 하위 쿼리
하위 쿼리와 외부 쿼리가 동일한 테이블을 참조(테이블을 자기 자신에게 조인)하는 문을 대부분 자체 조인이라고 합니다. 예를 들어 하위 쿼리를 사용하여 Terri Duffy와 관리자가 같은 직원을 찾을 수 있습니다.
USE AdventureWorks;
GO
SELECT EmployeeID, ManagerID
FROM HumanResources.Employee
WHERE ManagerID IN
(SELECT ManagerID
FROM HumanResources.Employee
WHERE EmployeeID = 12)
결과 집합은 다음과 같습니다.
EmployeeID ManagerID
----------- -----------
6 109
12 109
21 109
42 109
140 109
148 109
273 109
(7 row(s) affected)
또는 자체 조인을 사용할 수도 있습니다.
USE AdventureWorks;
GO
SELECT e1.EmployeeID, e1.ManagerID
FROM HumanResources.Employee AS e1
INNER JOIN HumanResources.Employee AS e2
ON e1.ManagerID = e2.ManagerID
AND e2.EmployeeID = 12
자기 자신에게 조인된 테이블은 두 개의 다른 역할을 하므로 테이블 별칭이 필요합니다. 내부 쿼리와 외부 쿼리에서 동일한 테이블을 참조하는 중첩 쿼리에서도 별칭을 사용할 수 있습니다.
USE AdventureWorks;
GO
SELECT e1.EmployeeID, e1.ManagerID
FROM HumanResources.Employee AS e1
WHERE e1.ManagerID IN
(SELECT e2.ManagerID
FROM HumanResources.Employee AS e2
WHERE e2.EmployeeID = 12)
명시적 별칭은 하위 쿼리에서 HumanResources.Employee
에 대한 참조가 외부 쿼리에서의 참조와 동일하지 않음을 분명하게 해 줍니다.