SQL 連線
SQL JOIN
JOIN
子句用於根據它們之間的相關列,將來自兩個或多個表的行合併在一起。
我們來看“Orders”表中的一部分內容
OrderID | CustomerID | OrderDate |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
然後,檢視“Customers”表中的一部分內容
CustomerID | CustomerName | ContactName | Country |
---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mexico |
注意,“Orders”表中的“CustomerID”列引用了“Customers”表中的“CustomerID”列。上面兩個表之間的關係是“CustomerID”列。
然後,我們可以建立以下 SQL 語句(其中包含一個 INNER JOIN
),該語句選擇在兩個表中都具有匹配值的記錄
示例
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
自己動手試一試 »
它將產生類似這樣的結果
OrderID | CustomerName | OrderDate |
---|---|---|
10308 | Ana Trujillo Emparedados y helados | 9/18/1996 |
10365 | Antonio Moreno Taquería | 11/27/1996 |
10383 | Around the Horn | 12/16/1996 |
10355 | Around the Horn | 11/15/1996 |
10278 | Berglunds snabbköp | 8/12/1996 |
不同型別的 SQL 連線
以下是 SQL 中 JOIN 的不同型別
(INNER) JOIN
:返回在兩個表中都有匹配值的記錄LEFT (OUTER) JOIN
:返回左表中的所有記錄,以及右表中匹配的記錄RIGHT (OUTER) JOIN
:返回右表中的所有記錄,以及左表中匹配的記錄FULL (OUTER) JOIN
:返回左表或右表中有匹配的記錄