MySQL JOINS

19 Aug 2025 | 4 分钟阅读

MySQL JOINS 用于 SELECT 语句。它用于从多个表中检索数据。当您需要从两个或多个表中获取记录时,就会执行此操作。

MySQL 连接有三种类型:

  • MySQL INNER JOIN(有时也称为简单连接)
  • MySQL LEFT OUTER JOIN(有时也称为 LEFT JOIN)
  • MySQL RIGHT OUTER JOIN(有时也称为 RIGHT JOIN)

MySQL Inner JOIN(简单连接)

MySQL INNER JOIN 用于返回多个表中满足连接条件的全部行。它是最常见的连接类型。

语法

解释:在上述语法中,SELECT 命令用于从表中检索信息。Table1 代表第一个表名,Table2 代表第二个表。Inner Join 用于查找两个表中的相等值。

图像表示

mysql join 1

让我们举个例子

考虑两个表“officers”和“students”,具有以下数据。

mysql join 2

执行以下查询

解释:在上述查询中,使用 select 查询通过 Join 的概念从 officer 和 student 两个表中获取信息,例如 officer 的姓名、officer 的地址和 student 的课程名称。在这里,INNER join 用于匹配两个表中的公共列并限制数据。上述语句获取 officer 表和 student 表的信息,其中两个表的 id 匹配。

输出:运行此查询后,表的输出如下。

mysql join 3

MySQL Left Outer Join

LEFT OUTER JOIN 返回 ON 条件中指定的左表中的所有行,以及其他表中满足连接条件的行。

语法

解释:在上述语法中,SELECT 命令用于从两个表中检索信息。LEFT outer Join 用于匹配两个表中的信息,并检索左表中未匹配的信息。

图像表示

mysql join 4

让我们举个例子

考虑两个表“officers”和“students”,具有以下数据。

mysql join 5

执行以下查询

解释:在上述查询中,使用 select 查询通过 LEFT Outer Join 的概念从 officer 和 student 两个表中获取信息,例如 officer 的姓名、officer 的地址和 student 的课程名称。在这里,join 用于匹配 ID 等两个表中的公共列,并通过获取两个表中的匹配数据和左表中的数据来获得受限数据。因此,上述语句获取 officer 表和 student 表的信息,其中两个表的 id 匹配。

输出:运行此查询后,表的输出如下。

mysql join 6

MySQL Right Outer Join

MySQL Right Outer Join 返回 ON 条件中指定的右表中的所有行,以及另一表中满足连接条件的行。

语法

解释:在上述语法中,SELECT 命令用于从两个表中检索信息。RIGHT outer Join 用于匹配两个表中的信息,并检索右表中未匹配的信息。

图像表示

mysql join 7

让我们举个例子

考虑两个表“officers”和“students”,具有以下数据。

mysql join 8

执行以下查询

解释:在上述查询中,使用 select 查询通过 RIGHT Outer Join 的概念从 officer 和 student 两个表中获取信息,例如 officer 的姓名、officer 的地址、student 的课程名称和 student 的姓名。在这里,join 用于匹配两个表中的 ID 等公共列,并获取两个表中的匹配数据以及右表中的数据。

输出:运行此查询后,表的输出如下。

mysql join 9

一些关于 Joins 的常见问题列表

1. 列出在 MySQL 中使用 Join 的一些优点?

答案:以下是在 MySQL 中使用 joins 的优点列表。

  • 提高速度:JOIN 查询比多个单独的查询更快地从多个表中检索数据,并且更有效地获得相同的结果。
  • 提高效率:通过索引的概念,JOIN 子句有助于提高数据检索的性能和准确性。
  • 最小化服务器负载:JOIN 有助于最小化 MySQL 服务器和应用程序之间的数据传输次数,并减少服务器的总负载。

2. MySQL 中有哪些不同类型的 JOIN?

答案:以下是 MySQL 中各种 Join 的列表。

  • INNER JOIN:返回所有定义表中具有匹配值的行。
  • LEFT OUTER JOIN:左表中的每一行都会被添加,并且只包含右表中匹配的行。右表中未匹配的行用 NULL 填充。
  • CROSS JOIN:它将一个表的每一行与另一个表的每一行连接起来,从而一个表包含所有可能的行组合。
  • SELF JOIN:它允许比较同一表中的顺序数据。

下一主题MySQL Inner Join