SQLPathLab
表连接 · 基础

INNER JOIN

只返回两张表中能匹配上的记录。

简介

INNER JOIN 只返回左右两张表都满足 ON 条件的匹配组合,任一侧未匹配的记录都会被排除。连接字段不唯一时,一条记录可能匹配多条记录并放大结果行数。写完 JOIN 后应先核对连接键和行数,再继续聚合或筛选。

基础语法

SELECT o.id, c.name FROM orders o INNER JOIN customers c ON o.customer_id = c.id;

示例

INNER JOIN 示例

用 customer_id 连接 orders 与 customers,只返回能找到客户的订单。

示例数据表

表名:orders
orders
idcustomer_id
1 101
2 102
3 101
4 104
表名:customers
customers
idname
101 Alice
102 Bob
103 Cindy

运行结果

result
idname
1 Alice
2 Bob
3 Alice

常见问题

INNER JOIN 会返回哪些记录?

只返回左右两张表都能根据 ON 条件匹配上的记录。

JOIN 后行数变多是什么原因?

通常是连接字段在一侧或两侧存在重复值,形成了一对多或多对多匹配。

ON 条件可以写多个字段吗?

可以,多个字段匹配时通常使用 AND 连接条件。

标签

常用表连接

这篇内容是否清楚?