Podkwerendy z aliasów
Wiele instrukcji, w którym podkwerenda i zewnętrznej kwerendy odwoływać się do tej samej tabela może zostać określona jako self-joins (dołączania tabela z samą sobą).Można na przykład znaleźć pracowników, którzy mają ten sam Menedżer jak Terri Duffy przy użyciu podkwerenda:
USE AdventureWorks;
GO
SELECT EmployeeID, ManagerID
FROM HumanResources.Employee
WHERE ManagerID IN
(SELECT ManagerID
FROM HumanResources.Employee
WHERE EmployeeID = 12)
Here is the result set.
EmployeeID ManagerID
----------- -----------
6 109
12 109
21 109
42 109
140 109
148 109
273 109
(7 row(s) affected)
Można też użyć samosprzężenie:
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
Aliasy tabela są wymagane, ponieważ w tabela, że jest dołączony do niego samego pojawia się w dwóch różnych ról.Mogą również być również używane w kwerendach zagnieżdżonych, które odwołują się do tej samej tabela w kwerendzie wewnętrznych i zewnętrznych.
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)
Jawne aliasy był wyczyścić, odwołanie do HumanResources.Employee w podkwerendzie nie oznacza to samo jako odwołanie zewnętrzne kwerendy.