Udostępnij za pośrednictwem


Podkwerendy z aliasów

Wiele instrukcji, w których podzapytanie i Kwerenda zewnętrznego odnoszą się do tej samej tabela może być wyrażona jako samosprzężeniach (Łączenie tabela do siebie).Na przykład można wyszukać adresy pracowników z określonym stanie przy użyciu podzapytanie:

USE AdventureWorks2008R2;
GO
SELECT StateProvinceID, AddressID
FROM Person.Address
WHERE AddressID IN
    (SELECT AddressID
     FROM Person.Address
     WHERE StateProvinceID = 39)

Oto zestaw wyników.

StateProvinceID AddressID

----------- -----------

39 942

39 955

39 972

39 22660

(4 row(s) affected)

Lub użyć samosprzężenie:

USE AdventureWorks2008R2;
GO
SELECT e1.StateProvinceID, e1.AddressID
FROM Person.Address AS e1
INNER JOIN Person.Address AS e2
ON e1.AddressID = e2.AddressID
AND e2.StateProvinceID = 39;

Aliasy tabeli są wymagane, ponieważ tabela przyłączeniem się do siebie pojawi się w dwóch różnych ról.Aliasów można również używać w kwerendach zagnieżdżonych, które odwołują się do tej samej tabela, w kwerendzie wewnętrznych i zewnętrznych.

USE AdventureWorks2008R2;
GO
SELECT e1.StateProvinceID, e1.AddressID
FROM Person.Address AS e1
WHERE e1.AddressID IN
    (SELECT e2.AddressID
     FROM Person.Address AS e2
     WHERE e2.StateProvinceID = 39)

Aliasy jawne stał się jasne, że odwołanie do Person.Address w podzapytanie nie oznacza to samo jako odwołanie zewnętrzne kwerendy.

Zobacz także

Koncepcje