mysql如何使用inner join

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

mysql如何使用inner join

在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 是最常用的连接方式,适合处理表之间有明确关联关系的场景。只要搞清楚连接字段和数据匹配逻辑,用起来很直观。

相关推荐