MySQL Inner Join

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

MySQL 内连接(Inner Join)用于仅返回表中与指定条件匹配的结果,并隐藏其他行和列。MySQL 默认它就是连接方式,所以使用 Inner Join 关键字是可选的。

我们可以通过以下可视化表示来理解它,其中内连接仅返回 table1 和 table2 中的匹配结果。

MySQL Inner Join

MySQL 内连接语法

Inner Join 关键字与 SELECT 语句 一起使用,并且必须写在 FROM 子句之后。以下语法更清晰地解释了这一点。

在此语法中,我们首先选择列列表,然后指定将要连接到主表的表名,这些表出现在 Inner Join(table1, table2)中,最后在 ON 关键字后提供条件。Join 条件返回 Inner 子句中指定的表之间的匹配行。

MySQL 内连接示例

我们先创建两个名为“students”和“technologies”的表,其中包含以下数据。

表:student

MySQL Inner Join

表:technologies

MySQL Inner Join

要从两个表中选择记录,请执行以下查询。

成功执行查询后,将得到以下输出:

MySQL Inner Join

MySQL 内连接与 GROUP BY 子句

内连接也可以与 GROUP BY 子句一起使用。以下语句使用带 GROUP BY 子句的 Inner Join 子句返回学生 ID、技术名称、城市和机构名称。

以上语句将产生以下输出。

MySQL Inner Join

MySQL 内连接与 USING 子句

有时,两个表中的列名是相同的。在这种情况下,我们可以使用 USING 关键字来访问记录。以下查询更清楚地说明了这一点。

它将提供以下输出

MySQL Inner Join

内连接与 WHERE 子句

WHERE 子句使您能够返回过滤后的结果。以下示例说明了此子句与 Inner Join 的结合使用。

此语句产生以下结果:

MySQL Inner Join

MySQL 内连接多表

我们已经创建了两个名为 studentstechnologies 的表。让我们再创建一个名为 contact 的表。

MySQL Inner Join

执行以下语句来连接三个表 students、technologies 和 contact。

成功执行上述查询后,将得到以下输出:

MySQL Inner Join

MySQL 内连接使用运算符

MySQL 允许使用许多运算符与 Inner Join 一起使用,例如大于(>)、小于(<)、等于(=)、不等于(!=),等等。以下查询返回收入在 20000 到 80000 之间的结果。

这将产生以下输出。

MySQL Inner Join
下一主题MySQL LEFT JOIN