Udostępnij za pośrednictwem


Dołączanie do trzech lub więcej tabel

Chociaż specyfikacja każdego łączyć łączy tylko dwie tabele, Z klauzul może zawierać wiele specyfikacje łączyć.Dzięki temu wiele tabel, które mają zostać połączone w jednej kwerendzie.

ProductVendor tabela AdventureWorks2008R2 Baza danych zapewnia dobrym przykładem sytuacji, w której łączącą pomocne jest więcej niż dwie tabele.Następujące Transact-SQL kwerendy znajduje się nazwy wszystkich produktów poszczególnych podkategorii oraz nazwy ich dostawców:

SELECT p.Name, v.Name
FROM Production.Product p
JOIN Purchasing.ProductVendor pv
ON p.ProductID = pv.ProductID
JOIN Purchasing.Vendor v
ON pv.BusinessEntityID = v.BusinessEntityID
WHERE ProductSubcategoryID = 15
ORDER BY v.Name;

Oto zestaw wyników.

Name                           Name

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

LL Mountain Seat/Saddle        Chicago City Saddles

ML Mountain Seat/Saddle        Chicago City Saddles

HL Mountain Seat/Saddle        Chicago City Saddles

LL Road Seat/Saddle         Chicago City Saddles

ML Road Seat/Saddle         Chicago City Saddles

HL Road Seat/Saddle          Chicago City Saddles

LL Touring Seat/Saddle         Chicago City Saddles

ML Touring Seat/Saddle         Chicago City Saddles

HL Touring Seat/Saddle         Chicago City Saddles

HL Touring Seat/Saddle         Expert Bike Co

ML Touring Seat/Saddle         Expert Bike Co

LL Touring Seat/Saddle         Expert Bike Co

HL Road Seat/Saddle            First Rate Bicycles

LL Mountain Seat/Saddle        First Rate Bicycles

ML Mountain Seat/Saddle        First Rate Bicycles

LL Road Seat/Saddle            Hill's Bicycle Service

ML Road Seat/Saddle            Hill's Bicycle Service

HL Mountain Seat/Saddle        Hybrid Bicycle Center

(18 row(s) affected)

Zawiadomienia jednej z tabel w klauzula FROM ProductVendor, nie wpływa na wszystkie kolumny na wyniki.Ponadto, brak sprzężone kolumny ProductID i VendorID, są wyświetlane w wyniki.Niemniej jednak, tego łączyć jest możliwe tylko przy użyciu ProductVendor jako pośrednie tabela.

Środkowy tabela łączyć, ProductVendor tabela, można wywołać tabela translacji lub pośrednich tabela, ponieważ ProductVendor jest pośrednie punkt połączenia między tymi tabelami biorących udział w sprzężeniu.

Gdy istnieje więcej niż jeden operator łączyć w tej samej instrukcja dołączenia więcej niż dwie tabele lub dołączyć więcej niż dwie pary kolumn, wyrażeń łączyć mogą być połączone z oraz lub lub.