SQL連接用於排從兩個或多個表結合起來。
SQL JOIN
一個SQL JOIN子句用於行從兩個或更多表的基礎上在它們之間的公共場結合起來。
加入最常見的類型是:SQL INNER JOIN(簡單連接)。 一個SQL INNER JOIN回報從哪裡連接條件滿足多個表的所有行。
讓我們來看看選擇從"Orders"表:
訂單ID | 客戶ID | 訂購日期 |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
然後,看看從選擇"Customers"表:
客戶ID | 顧客姓名 | 聯繫人姓名 | 國家 |
---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Mexico |
3 | Antonio Moreno Taqueria | Antonio Moreno | Mexico |
請注意, "CustomerID"列中的"Orders"表指的是"CustomerID"中的"Customers"表。 上面的兩個表之間的關係是"CustomerID"列中。
那麼,如果我們運行下面的SQL語句(包含內部聯接):
例
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM
Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;
試一試» 它會產生這樣的事情:
訂單ID | 顧客姓名 | 訂購日期 |
---|---|---|
10308 | Ana Trujillo Emparedados y helados | 9/18/1996 |
10365 | Antonio Moreno Taqueria | 11/27/1996 |
10383 | Around the Horn | 12/16/1996 |
10355 | Around the Horn | 11/15/1996 |
10278 | Berglunds snabbkop | 8/12/1996 |
不同的SQL連接
之前,我們將繼續與例子中,我們將列出類型的不同SQL連接,你可以使用:
- INNER JOIN :返回的所有行的時候有兩個表中至少有一個匹配
- LEFT JOIN :左表中返回所有行和右表匹配的行
- RIGHT JOIN :右表中返回所有行和左表的匹配的行
- FULL JOIN :返回所有行的時候沒有在表中的一個匹配