首页/数据/SQL 速查/INNER JOIN 内连接基础
本包目录(311 条)

INNER JOIN 内连接基础

按连接条件把两张表的行配对,只保留匹配成功的组合;显式 JOIN 语法比逗号连接更清晰,也不容易漏写连接条件。

SQL 速查数据更新于 2026-10-12
语义只返回两表都能匹配上的行
写法t1 JOIN t2 ON t1.k = t2.k
别名JOIN 子句中使用表别名

示例

示例
SELECT o.id, o.amount, u.name
FROM orders AS o
JOIN users  AS u ON u.id = o.user_id
WHERE o.status = 1;

与逗号连接等价

与逗号连接等价
SELECT o.id, u.name
FROM orders o, users u
WHERE o.user_id = u.id;   -- 等价但不推荐:漏 WHERE 就成笛卡尔积
连接条件写在 ON、过滤条件写在 WHERE;内连接中两者可互换,但“ON 管配对、WHERE 管过滤”读起来更清楚。

易错点

  • 漏写连接条件或条件写错会得到笛卡尔积,行数成倍膨胀,重要查询先核对行数
  • 连接键类型或字符集不一致时 MySQL 可能隐式转换导致索引失效,需要显式对齐

数据来源与参考

  • MySQL 8.0 Reference Manual · JOIN Clause
  • PostgreSQL Documentation · Joined Tables
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌