mysql如何使用INNER JOIN_mysql INNER JOIN连接解析

来源:这里教程网 时间:2026-02-28 20:24:02 作者:

在MySQL中,INNER JOIN 是最常用的表连接方式之一,用于从两个或多个表中提取**同时满足连接条件**的数据。它只返回两表中“交集”部分的记录,即左右两边都能匹配上的行。

INNER JOIN 的基本语法

结构如下:

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

说明:

表1表2 是要连接的数据表 ON 后面是连接条件,通常基于主键与外键关系 只有当 ON 条件成立时,对应行才会出现在结果中

一个实际例子:用户和订单表

假设有两张表:

users(用户表):user_id, name orders(订单表):order_id, user_id, product

你想查出每个下单用户的姓名及其购买的商品。使用 INNER JOIN 如下:

SELECT users.name, orders.product
FROM users
INNER JOIN orders ON users.user_id = orders.user_id;

结果将只包含那些在 users 表中有记录、且在 orders 表中也有对应订单的用户。如果某个用户没有下单,就不会出现在结果里;同样,孤立的订单(user_id 不存在于 users 表)也不会被返回。

INNER JOIN 的特点与注意事项

返回的是“交集”,不是全量数据 连接字段建议建立索引,否则大表连接会很慢 可以连接多个表,比如:
SELECT ... FROM A INNER JOIN B ON ... INNER JOIN C ON ...
ON 条件不限于等值判断,也可用 >、 字段名相同可用别名区分,如:
SELECT u.name, o.product FROM users u INNER JOIN orders o ON u.user_id = o.user_id;

与其他 JOIN 的区别简要说明

LEFT JOIN:保留左表所有行,右表无匹配则补 NULL RIGHT JOIN:保留右表所有行 INNER JOIN:只保留两边都能匹配的行

如果你只关心“有订单的用户信息”,INNER JOIN 最合适。若想查“所有用户,包括没下单的”,就得用 LEFT JOIN。

基本上就这些。掌握 INNER JOIN 是写多表查询的基础,理解其“取交集”的逻辑很关键。不复杂但容易忽略。

相关推荐

热文推荐