奚娅琼 发表于 2025-7-9 00:08:52

INNER JOIN, LEFT JOIN, RIGHT JOIN 的区别

今天我们来一起探索下 JOIN,JOIN 作为数据库操作的核心概念,用于合并两个或多个表中的数据。
一、JOIN (INNER JOIN)
1、基本功能:返回两个表中匹配成功的行。
2、特点:

[*]只保留两表中都满足连接条件的记录;
[*]如果某行在一个表中存在但在另一个表中没有匹配项,则该行不会出现在结果中;
[*]结果集的行数 ≤ 两个原表的行数。
3、语法:
SELECT columns
FROM table1
JOIN table2 ON table1.column = table2.column;4、示例:
SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;二、LEFT JOIN (LEFT OUTER JOIN)
1、基本功能:返回左表的所有行,即使右表中没有匹配。
2、特点:

[*]保留左表的全部记录;
[*]当右表无匹配时,右表字段显示为 NULL;
[*]结果集的行数 = 左表的行数。
3、语法:
SELECT columns
FROM table1
LEFT JOIN table2 ON table1.column = table2.column;4、示例:
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.dept_id = departments.dept_id;三、RIGHT JOIN (RIGHT OUTER JOIN)
1、基本功能:返回右表的所有行,即使左表中没有匹配。
2、特点:

[*]保留右表的全部记录;
[*]当左表无匹配时,左表字段显示为 NULL;
[*]结果集的行数 = 右表的行数;
[*]实际使用较少,通常可以用 LEFT JOIN 替代。
3、语法:
SELECT columns
FROM table1
RIGHT JOIN table2 ON table1.column = table2.column;4、示例:
SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments ON employees.dept_id = departments.dept_id;实际使用建议

[*]INNER JOIN 是最常用的,适用于需要两个表都有数据的场景;
[*]LEFT JOIN 常用于需要主表完整数据,关联表可有可无的情况;
[*]RIGHT JOIN 使用较少,通常可以通过调换表顺序用 LEFT JOIN 实现;
[*]注意 NULL 值的处理,特别是在 WHERE 条件中。
在强者的世界中,即便是戴着镣铐跳舞,舞也会跳得铿锵有力。-- 烟沙九洲

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

鄂缮输 发表于 2025-12-4 09:07:44

用心讨论,共获提升!

庾签 发表于 2025-12-8 20:46:51

很好很强大我过来先占个楼 待编辑

搁胱 发表于 2025-12-13 14:06:34

谢谢分享,试用一下

豹筒生 发表于 2025-12-13 18:31:59

喜欢鼓捣这些软件,现在用得少,谢谢分享!

皮仪芳 发表于 2025-12-14 13:37:15

感谢分享,学习下。

劳暄美 发表于 2026-1-4 17:01:09

过来提前占个楼

赐度虻 发表于 2026-1-14 01:00:35

谢谢分享,试用一下

侧胥咽 发表于 2026-1-14 06:19:40

收藏一下   不知道什么时候能用到

南宫玉英 发表于 2026-1-17 10:09:17

很好很强大我过来先占个楼 待编辑

艾曼语 发表于 2026-1-17 22:04:37

分享、互助 让互联网精神温暖你我

热琢 发表于 2026-1-18 06:20:09

很好很强大我过来先占个楼 待编辑

缀访 发表于 2026-1-19 10:50:14

过来提前占个楼

句惫 发表于 2026-1-20 19:01:49

新版吗?好像是停更了吧。

仁夹篇 发表于 2026-1-23 05:30:51

用心讨论,共获提升!

后仲舒 发表于 2026-1-25 12:05:01

过来提前占个楼

二艰糖 发表于 2026-1-26 02:29:02

很好很强大我过来先占个楼 待编辑

昆拗干 发表于 2026-2-3 21:40:29

懂技术并乐意极积无私分享的人越来越少。珍惜

讣丢 发表于 2026-2-4 08:28:15

感谢分享,下载保存了,貌似很强大

判涔 发表于 2026-2-6 07:52:09

新版吗?好像是停更了吧。
页: [1] 2
查看完整版本: INNER JOIN, LEFT JOIN, RIGHT JOIN 的区别