MySQL EquiJoin

2025年3月17日 | 阅读 3 分钟

当基于一些公共列和连接条件合并两个或多个表时,这个过程称为连接。等值连接(Equijoin)是一种基于相关表中的相等或匹配列值来组合多个表的操作

我们可以在 WHERE 子句中使用等号 (=) 比较运算符来表示相等性。这种连接操作在使用了 JOIN 关键字并指定了 ON 子句,然后指定列名及其相关表时,会返回相同的结果。

等值连接是内连接的一种分类,它通过对两个表基于它们之间的公共列执行连接操作来返回输出。此连接仅返回基于公共主字段名在两个表中都存在的数据。它不会在结果集中显示 null 记录或不匹配的数据。

注意事项

  • 列名不必相同。
  • 结果集可以包含重复的列名。
  • 我们也可以对两个以上的表执行等值连接操作。

语法

以下是说明等值连接操作的基本语法。

在此语法中,我们需要在 SELECT 关键字之后指定要包含在结果集中的列名。如果我们想选择两个表中的所有列,可以使用 * 运算符。接下来,我们将在 FROM 关键字之后指定要连接的表名,最后在 WHEREON 子句中编写连接条件

等值连接示例

让我们通过示例了解等值连接在 MySQL 中的工作原理。假设我们已经有了名为 customerbalance 的两个表,它们包含以下数据:

MySQL EquiJoin

执行下面的等值连接语句进行表连接:

我们将得到以下结果:

MySQL EquiJoin

我们也可以通过使用下面的语句获得相同的结果:

请看下面的输出,它与上一个查询返回的结果相同:

MySQL EquiJoin

使用三个表进行等值连接

我们知道等值连接也可以对两个以上的表执行连接操作。为了理解这一点,让我们使用下面的语句创建一个名为 cust_info 的新表:

然后,我们将向此表中填充记录:

我们可以使用 SELECT 语句验证数据。请看下图:

MySQL EquiJoin

要使用等值连接连接三个表,我们需要执行如下语句:

它将给出以下结果。

MySQL EquiJoin

自然连接(Natural Join)、等值连接(Equi Join)和内连接(Inner Join)的区别

让我们在下面给出的表格形式中总结自然连接、等值连接和内连接操作之间的区别:

自然连接Equi JoinInner Join
它根据相同的列名及其数据类型连接表。它基于相关表中的相等或匹配列值来连接表。它基于 ON 子句中明确指定的列名来连接表。它只返回两个表中都存在的行。
它总是在结果集中返回唯一的列。它可以返回两个表的所有属性,以及匹配连接条件的重复列。它可以返回两个表的所有属性,以及匹配 ON 子句条件的重复列。
自然连接的语法如下:

SELECT [列名 | *]
FROM 表名1
NATURAL JOIN 表名2;

等值连接的语法如下:
SELECT 列名(s)

FROM 表名1, 表名2, ...., 表名N
WHERE 表名1.列名 = 表名2.列名;

内连接的语法如下:
SELECT [列名 | *]

FROM 表名1

INNER JOIN 表名2
ON 表名1.列名 = 表名2.列名;


下一主题MySQL 自然连接