MySQL 连接
MySQL 连接表格
一个 JOIN
语句用于根据两个或多个表格之间相关的列组合两个或多个表格中的行。
让我们看一下“订单”表格中的一个选择
订单编号 | 客户编号 | 订单日期 |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
然后,看一下“客户”表格中的一个选择
客户编号 | 客户名称 | 联系人名称 | 国家 |
---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | 德国 |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | 墨西哥 |
3 | Antonio Moreno Taquería | Antonio Moreno | 墨西哥 |
请注意,“订单”表格中的“客户编号”列引用了“客户”表格中的“客户编号”。上面两个表格之间的关系是“客户编号”列。
然后,我们可以创建以下 SQL 语句(包含一个 INNER JOIN
),它选择两个表格中具有匹配值的记录
例子
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
尝试一下 »
它将产生类似以下内容的结果
订单编号 | 客户名称 | 订单日期 |
---|---|---|
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 中支持的连接类型
INNER JOIN
: 返回两个表格中具有匹配值的记录LEFT JOIN
: 返回左侧表格的所有记录以及右侧表格中匹配的记录RIGHT JOIN
: 返回右侧表格的所有记录以及左侧表格中匹配的记录CROSS JOIN
: 返回两个表中的所有记录