MySQL Natural Join17 Mar 2025 | 4 分钟阅读 当我们将两个或多个表中的行基于它们之间的公共列进行组合时,这个操作称为连接。自然连接是一种连接操作,它通过基于具有相同名称和数据类型的列来组合表,从而创建隐式连接。它类似于 INNER 或 LEFT JOIN,但我们不能像在它们中那样使用 ON 或 USING 子句进行自然连接。 注意事项
语法以下是说明自然连接的基本语法 在此语法中,我们需要在 SELECT 关键字后指定要包含在结果集中的列名。如果我们想选择两个表中的所有列,将使用\*运算符。接下来,我们将在 FROM 关键字后指定要连接的表名,并在它们之间写入 NATURAL JOIN 子句。 自然连接示例让我们通过示例了解自然连接在 MySQL 中是如何工作的。首先,我们将使用以下语句创建两个名为 customer 和 balance 的表 接下来,我们将使用以下语句向这两个表中填充一些记录 接下来,我们将执行 SELECT 语句来验证表数据 ![]() 现在,我们将看到满足自然连接条件的条件。我们可以通过检查表结构来做到这一点,使用 DESCRIBE 语句。请看下图 ![]() 在此图中,我们可以看到列名 id 和 account 及其数据类型是相同的,这满足了自然连接的标准。因此,我们可以对它们使用自然连接。 执行以下语句以使用自然连接连接表 我们将得到以下结果 ![]() 我们可以使用带有 ON 子句的 INNER JOIN 来完成相同的工作。以下是解释此连接的查询 成功执行后,我们将获得与自然连接相同的结果 ![]() 现在,我们将使用 (*) 代替列名,如下所示 假设我们使用星号 (*) 代替列名,那么自然连接会自动搜索相同的列名和数据类型并将其内部连接。此外,它不会在输出中显示重复的列。因此,执行上述语句后,我们应该会看到以下输出 ![]() 带 WHERE 子句的自然连接WHERE 子句用于从表中返回过滤结果。以下示例使用自然连接子句说明了这一点 我们将获得以下结果,其中显示了账户余额大于 50000 的客户信息。 ![]() 使用三个表的自然连接我们知道自然连接还可以对两个以上的表执行连接操作。为了理解这一点,我们将使用以下语法 让我们使用以下语句创建另一个名为 cust_info 的表 然后,我们将向此表中填充记录 我们可以使用 SELECT 语句验证数据。请看下图 ![]() 要使用自然连接连接三个表,我们需要执行以下语句 它将给出以下结果。在这里,我们可以看到 account number 出现在所有三个表中,但在输出中只出现一次,这符合自然连接的标准。 ![]() 自然连接与内连接的区别
下一主题左连接与右连接 |
我们请求您订阅我们的新闻通讯以获取最新更新。