Udostępnij za pośrednictwem


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.