Joining Three or More Tables

Mimo, że każda Specyfikacja łączyć łączy tylko dwie tabele, klauzule FROM może zawierać wiele specyfikacji łączyć.Pozwala to wielu tabel, które mają zostać połączone w pojedynczą kwerendę.

The ProductVendor tabela of the AdventureWorks database offers a good example of a situation in which joining more than two tables is helpful. Poniżej Transact-SQL kwerenda powoduje znalezienie 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.VendorID = v.VendorID
WHERE ProductSubcategoryID = 15
ORDER BY v.Name

Here is the result set.

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)

Należy zauważyć, że jedna z tabel w klauzula FROM ProductVendor, nie wpływa żadnych kolumn z wyniki. Ponadto żadne sprzężone kolumny ProductID i VendorID, w wynikach. Niemniej jednak łączyć to jest możliwe tylko przy użyciu ProductVendor w tabela pośrednich.

W środkowym tabeli łączyć, ProductVendor Tabela, można wywołać tabelę translacji lub pośrednich tabeli, ponieważ ProductVendor to punkt pośredni połączenia między innymi tabelami biorących udział w sprzężeniu.

W przypadku 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 z kolumn wyrażeń łączyć mogą być połączone AND lub OR.