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
Zobacz także