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