MySQL 联接

创建于 2024-12-02 / 35
字体: [默认] [大] [更大]

MySQL 联接表

JOIN 子句用于根据它们之间的相关列组合来自两个或多个表的行。

让我们看一下"订单"表中的选择:

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

Advertisement

-->

MySQL 支持的联接类型

  • INNER JOIN:返回两个表中值匹配的记录
  • LEFT JOIN:返回左表所有记录,右表匹配记录
  • RIGHT JOIN:返回右表的所有记录,以及左表的匹配记录
  • CROSS JOIN:返回两个表中的所有记录

MySQL INNER JOIN  MySQL LEFT JOIN  MySQL RIGHT JOIN  MySQL CROSS JOIN


学习训练

测验:

JOIN 子句中插入缺失的部分,以连接 OrdersCustomers这两个表,使用两个表中的CustomerID字段作为两个表之间的关系。

SELECT *
FROM Orders
LEFT JOIN Customers
=
;

开始练习



0 人点赞过