
在MySQL中,INNER JOIN用于根据两个或多个表之间的相关列,返回仅包含匹配行的结果。换句话说,只有当左表和右表都存在符合条件的记录时,才会出现在查询结果中。
基本语法
INNER JOIN 的语法结构如下:
SELECT 列名 FROM 表1 INNER JOIN 表2 ON 表1.列 = 表2.列;其中,ON 子句指定连接条件,通常是两个表之间的外键关系。
实际例子说明
假设有两个表:users(用户信息)和 orders(订单信息)。
users 表:
user_id | name --------|------- 1 | 张三 2 | 李四 3 | 王五
orders 表:
order_id | user_id | product ---------|---------|---------- 101 | 1 | 手机 102 | 2 | 笔记本 103 | 1 | 耳机
我们想查询每个用户的订单信息,只显示有订单的用户:
SELECT users.name, orders.product FROM users INNER JOIN orders ON users.user_id = orders.user_id;查询结果为:
name | product -----|-------- 张三 | 手机 张三 | 耳机 李四 | 笔记本
注意:王五没有订单,因此不会出现在结果中。
连接多个表
INNER JOIN 也可以连接三个或更多表。例如,再加一个 products 表存储商品详情:
SELECT users.name, products.price FROM users INNER JOIN orders ON users.user_id = orders.user_id INNER JOIN products ON orders.product = products.name;这样可以从多个表中提取关联数据,前提是连接条件正确且字段值能匹配。
使用别名简化语句
为了书写方便,可以给表起别名:
SELECT u.name, o.product FROM users AS u INNER JOIN orders AS o ON u.user_id = o.user_id;AS 可以省略,直接写成 FROM users u。
基本上就这些。INNER JOIN 是最常用的连接方式,适合处理表之间有明确关联关系的场景。只要搞清楚连接字段和数据匹配逻辑,用起来很直观。










