MySQL 教程
/ 聯(lián)接
聯(lián)接
MySQL 聯(lián)接表
JOIN
子句用于根據(jù)它們之間的相關(guān)列組合來自兩個(gè)或多個(gè)表的行。
讓我們看一下"訂單"表中的選擇:
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"。 上面兩個(gè)表的關(guān)系就是"CustomerID"列。
然后,我們可以創(chuàng)建以下 SQL 語句(包含 INNER JOIN
),用于選擇兩個(gè)表中具有匹配值的記錄:
實(shí)例
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDateFROM OrdersINNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
»
它會(huì)產(chǎn)生類似這樣的結(jié)果:
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 |
MySQL 支持的聯(lián)接類型
INNER JOIN
:返回兩個(gè)表中值匹配的記錄LEFT JOIN
:返回左表所有記錄,右表匹配記錄RIGHT JOIN
:返回右表的所有記錄,以及左表的匹配記錄CROSS JOIN
:返回兩個(gè)表中的所有記錄