Za pomocą Self-joins
Tabela może być ed łączyć do samej siebie w automatycznej-łączyć.Użyj automatycznej-łączyć kiedy chcesz utworzyć wyniku ustawiona tego łączyć s rekordów w tabela z innymi rekordami w tej samej tabela.Aby wyświetlić listę tabela dwa razy w tej samej kwerendy, musisz podać alias tabela dla co najmniej jedno wystąpienie nazwy tabela.Ten alias tabela pomaga określić, czy kolumny powinna prezentować dane z prawej lub lewej wersja tabela procesor kwerend.
Przykłady
A.Korzystanie z automatycznej-łączyć znaleźć produkty dostarczane przez różnych producentów
W poniższym przykładzie użyto automatycznej-łączyć znaleźć produkty, które są dostarczane przez więcej niż jeden dostawca.
Ponieważ w tej kwerendzie używane jest łączyć z ProductVendor Tabela z samym sobą, ProductVendor Tabela pojawi się w dwóch ról. Aby odróżnić tych ról, należy nadać ProductVendor Tabela dwóch różnych aliasów)pv1 i pv2) w klauzula FROM. Następujące aliasy są używane do kwalifikowania nazw kolumn w pozostałej części kwerendy.Jest to przykład automatycznej łączyć Transact-SQL instrukcja:
USE AdventureWorks;
GO
SELECT DISTINCT pv1.ProductID, pv1.VendorID
FROM Purchasing.ProductVendor pv1
INNER JOIN Purchasing.ProductVendor pv2
ON pv1.ProductID = pv2.ProductID
AND pv1.VendorID <> pv2.VendorID
ORDER BY pv1.ProductID
B.Korzystanie z automatycznej-łączyć pracowników i ich menedżerów
W następującym przykładzie wykonywana samosprzężenie z HumanResources.Employee Tabela do utworzenia listy wszystkich menedżerów i pracowników, którzy je zgłosić.
SELECT MgrTable.LoginID AS ManagerName,EmplTable.ManagerID,
EmplTable.LoginID, EmplTable.EmployeeID
FROM HumanResources.Employee AS EmplTable
JOIN HumanResources.Employee AS MgrTable
ON EmplTable.ManagerID = MgrTable.EmployeeID
ORDER BY MgrTable.LoginID, EmplTable.LoginID
See Also