An SQL query can JOIN multiple tables.
For each new table an extra JOIN condition is added.
Multi-Table JOINs work with SELECT, UPDATE, and DELETE queries.
Problem: List all products that have sold. Include supplier and order numbers. Sort by order number.
SELECT OrderNumber, CompanyName, ProductName
FROM Product P
JOIN Supplier S ON S.Id = P.SupplierId
JOIN OrderItem I ON P.Id = I.ProductId
JOIN [Order] O ON O.Id = I.OrderId
ORDER BY OrderNumber
Note: This is a 4-table join.
OrderNumber | CompanyName | ProductName |
---|---|---|
542378 | Cooperativa de Quesos 'Las Cabras' | Queso Cabrales |
542378 | Leka Trading | Singaporean Hokkien Fried Mee |
542378 | Formaggi Fortini s.r.l. | Mozzarella di Giovanni |
542379 | Mayumi's | Tofu |
542379 | G'day, Mate | Manjimup Dried Apples |
542380 | New England Seafood Cannery | Jack's New England Clam Chowder |
542380 | G'day, Mate | Manjimup Dried Apples |
542380 | New Orleans Cajun Delights | Louisiana Fiery Hot Pepper Sauce |
Multi-Table JOIN syntax.
SELECT column-names FROM table-name1 JOIN table-name2 ON column-name1 = column-name2 JOIN table-name3 ON column-name3 = column-name4 JOIN table-name4 ON column-name5 = column-name6 ... WHERE condition
Multi-Table INNER JOIN syntax.
SELECT column-names FROM table-name1 INNER JOIN table-name2 ON column-name1 = column-name2 INNER JOIN table-name3 ON column-name3 = column-name4 INNER JOIN table-name4 ON column-name5 = column-name6 ... WHERE condition
The INNER keyword is optional.
PRODUCT |
---|
Id |
ProductName |
SupplierId |
UnitPrice |
Package |
IsDiscontinued |
ORDERITEM |
---|
Id |
OrderId |
ProductId |
UnitPrice |
Quantity |
ORDER |
---|
Id |
OrderDate |
OrderNumber |
CustomerId |
TotalAmount |
SELECT O.OrderNumber, S.CompanyName AS Supplier,
P.ProductName, I.Quantity, I.UnitPrice
FROM [Order] O
JOIN OrderItem I ON O.Id = I.OrderId
JOIN Product P ON P.Id = I.ProductId
JOIN Supplier S ON S.Id = P.SupplierId
ORDER BY O.OrderNumber
This query performs 3 JOIN operations with 4 tables.
O, I, S, and P are table aliases.
Date is a column alias.
OrderNumber | Supplier | ProductName | Quantity | UnitPrice |
---|---|---|---|---|
542378 | Cooperativa de Quesos 'Las Cabras' | Queso Cabrales | 12 | 14.00 |
542378 | Leka Trading | Singaporean Hokkien Fried Mee | 10 | 9.80 |
542378 | Formaggi Fortini s.r.l. | Mozzarella di Giovanni | 5 | 34.80 |
542379 | Mayumi's | Tofu | 9 | 18.60 |
542379 | G'day, Mate | Manjimup Dried Apples | 40 | 42.40 |
542380 | New England Seafood Cannery | Jack's New England Clam Chowder | 10 | 7.70 |
542380 | G'day, Mate | Manjimup Dried Apples | 35 | 42.40 |
542380 | New Orleans Cajun Delights | Louisiana Fiery Hot Pepper Sauce | 15 | 16.80 |
542381 | PB Knäckebröd AB | Gustaf's Knäckebröd | 6 | 16.80 |
542381 | Pasta Buttini s.r.l. | Ravioli Angelo | 15 | 15.60 |
542381 | New Orleans Cajun Delights | Louisiana Fiery Hot Pepper Sauce | 20 | 16.80 |
542382 | Specialty Biscuits, Ltd. | Sir Rodney's Marmalade | 40 | 64.80 |
542382 | Norske Meierier | Geitost | 25 | 2.00 |