共用方式為


使用別名的子查詢

若陳述式中的子查詢與外部查詢都參考到相同的資料表,這些陳述式將可敘述成自我聯結 (將資料表聯結至本身)。例如,您可以使用子查詢來尋找與 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 和外部查詢中的參考,兩者代表的意義並不相同。

請參閱

概念

子查詢類型

說明及資訊

取得 SQL Server 2005 協助