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| id | customer_id |
|---|---|
| 1 | 101 |
| 2 | 102 |
| 3 | 101 |
| 4 | 104 |
表名:
customers| id | name |
|---|---|
| 101 | Alice |
| 102 | Bob |
| 103 | Cindy |
运行结果
| id | name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| 3 | Alice |
常见问题
INNER JOIN 会返回哪些记录?
只返回左右两张表都能根据 ON 条件匹配上的记录。
JOIN 后行数变多是什么原因?
通常是连接字段在一侧或两侧存在重复值,形成了一对多或多对多匹配。
ON 条件可以写多个字段吗?
可以,多个字段匹配时通常使用 AND 连接条件。
标签
这篇内容是否清楚?
感谢反馈,我们会把它用于后续内容复核。