Udostępnij za pośrednictwem


Przy użyciu samosprzężeniach

tabela można przyłączyć do siebie w samosprzężenie.Najlepiej jest użyć samosprzężenie, chcąc utworzyć zestaw wyników , dołącza rekordy w tabela z innych rekordów w jednej tabela.Aby wyświetlić listę tabela dwa razy w tej samej kwerendzie, należy podać alias tabela co najmniej jeden z wystąpienie nazwą tabela.Ten alias tabela pomaga ustalić, czy kolumny powinna prezentować dane z prawej lub lewej wersja tabela procesor kwerend.

Przykłady

A.Za pomocą samosprzężenie znaleźć produkty dostarczane przez wielu dostawców

W poniższym przykładzie użyto samosprzężenie Aby znaleźć produkty, które są dostarczane przez więcej niż jeden dostawca.

Ponieważ w tej kwerendzie używane jest łączyć z ProductVendor tabeli z samym sobą, ProductVendor Tabela pojawi się w dwóch ról.Aby rozróż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 w celu zakwalifikowania kolumna nazwy w pozostałej części kwerendy.Przykładem jest samosprzężenie Transact-SQL instrukcja:

USE AdventureWorks2008R2;
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.Za pomocą samosprzężenie sprzedawców i ich terytoriów

W następującym przykładzie wykonywana samosprzężenie z Sales.SalesPerson tabela można wygenerować listę wszystkich terytoriów i sprzedawców pracy nad nimi.

SELECT st.Name AS TerritoryName, sp.BusinessEntityID, 
    sp.SalesQuota, sp.SalesYTD
FROM Sales.SalesPerson AS sp
    JOIN Sales.SalesTerritory AS st
        ON sp.TerritoryID = st.TerritoryID
ORDER BY st.Name, sp.BusinessEntityID