结论:在绝大多数数据库(MySQL、PostgreSQL、SQL Server、Oracle 等)中,JOIN默认就是INNER JOIN,二者完全等价,没有任何功能区别。
详细解释
默认规则当你只写
JOIN关键字时,数据库会自动识别为内连接(INNER JOIN)。这是 SQL 标准规定的默认行为。语法对比这两段代码执行结果一模一样:
sql
-- 写法1:简写 JOIN(默认内连接) SELECT * FROM 表1 JOIN 表2 ON 表1.字段 = 表2.字段; -- 写法2:完整写法 INNER JOIN SELECT * FROM 表1 INNER JOIN 表2 ON 表1.字段 = 表2.字段;核心作用两者都表示内连接:只返回两个表中匹配成功的数据行,不匹配的行都会被过滤掉。
为什么要区分写?
虽然功能一样,但推荐写INNER JOIN,原因:
- 可读性更强:一眼就能看出是内连接,代码更清晰
- 避免歧义:和
LEFT JOIN、RIGHT JOIN、FULL JOIN区分更明确 - 团队协作规范:大型项目中统一写法,减少误解
简单总结
表格
| 写法 | 含义 | 执行效果 |
|---|---|---|
JOIN | 默认内连接 | 只返回匹配的行 |
INNER JOIN | 显式内连接 | 只返回匹配的行 |
| 完全等价 | —— | 无任何区别 |
总结
JOIN≡INNER JOIN,功能完全一样- 日常开发推荐写
INNER JOIN,代码更规范、易读 - 只有
LEFT/RIGHT/FULL JOIN才和内连接有本质区别