在 SQL 中,INNER JOIN(内连接) 和 LEFT JOIN(左连接,也称左外连接) 是最常见的两种表连接方式,核心区别在于是否保留“左表中没有匹配到的数据”。
下面用直观对比说明:
含义:
只返回两张表中都能匹配上的数据。
特点:
示例:
SELECT A.id, B.name
FROM A
INNER JOIN B ON A.id = B.a_id;
结果:
✅ 适合:只关心“有关联的数据”
含义:
以左表为主,返回左表所有数据;右表能匹配就匹配,不能匹配就补 NULL。
特点:
NULL示例:
SELECT A.id, B.name
FROM A
LEFT JOIN B ON A.id = B.a_id;
结果:
✅ 适合:要“左表全部 + 右表补充信息”
| 对比项 | INNER JOIN | LEFT JOIN |
|---|---|---|
| 左表数据 | 只返回匹配的 | 全部返回 |
| 右表数据 | 只返回匹配的 | 匹配+NULL |
| 结果行数 | ≤ 两表行数 | ≥ 左表行数 |
| 是否可能 NULL | 否 | 是(右表字段) |
INNER:有缘才相见
LEFT:左表全留下,右表随缘
如果你愿意,我也可以用**具体业务例子(如订单表、用户表)**再帮你细化说明。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。