首页/数据/数据库速查/INNER JOIN 内连接
SQL 语法52 条

INNER JOIN 内连接

只返回两表都能匹配上的行;连接条件写在 ON(或等价的 WHERE),是最常用也最容易被优化器重排的连接类型。

数据库速查数据更新于 2026-10-12
用途取交集并横向拼接列
语法A INNER JOIN B ON 条件
要点连接列要有索引

用法示例

用法示例
SELECT o.id, o.amount, u.name
FROM orders o
INNER JOIN users u ON u.id = o.user_id
WHERE o.status = 'paid'
LIMIT 50;

多表连接

多表连接
SELECT o.id, u.name, p.title
FROM orders o
JOIN users u ON u.id = o.user_id
JOIN products p ON p.id = o.product_id;
EXPLAIN 里被驱动表的连接列必须有索引,否则会出现全表扫描放大 N 倍;注意驱动表选择与连接顺序。

易错点

  • 忘记 ON 条件会产生笛卡尔积,行数爆炸
  • JOIN 与 WHERE 混用普通过滤条件在现代优化器里等价,但可读性上条件归 ON、过滤归 WHERE

数据来源与参考

  • MySQL 8.0 Reference Manual: JOIN Clause

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌