MySQL 中 INNER JOIN、LEFT JOIN 和 RIGHT JOIN 的区别是什么?
在MySQL中,INNER JOIN
、LEFT JOIN
和RIGHT JOIN
是用于连接两个或多个表的操作符,它们的主要区别在于如何处理匹配的记录和不匹配的记录。
-
INNER JOIN:
-
只返回两个表中匹配的记录。
-
如果在左表和右表中找不到匹配的行,那么这些行将不会出现在结果集中。
-
语法:
SELECT columns FROM table1 INNER JOIN table2 ON table1.column = table2.column;
-
-
LEFT JOIN (或 LEFT OUTER JOIN):
-
返回左表中的所有记录,以及右表中匹配的记录。如果右表中没有匹配的记录,则结果中右表的字段会显示为
NULL
。 -
适用于需要保留左表所有记录的场景。
-
语法:
SELECT columns FROM table1 LEFT JOIN table2 ON table1.column = table2.column;
-
-
RIGHT JOIN (或 RIGHT OUTER JOIN):
-
返回右表中的所有记录,以及左表中匹配的记录。如果左表中没有匹配的记录,则结果中左表的字段会显示为
NULL
。 -
适用于需要保留右表所有记录的场景。
-
语法:
SELECT columns FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;
-
总结:
- INNER JOIN:仅返回两个表中都有的匹配行。
- LEFT JOIN:返回左表的所有行,以及右表中的匹配行,如果右表没有匹配,返回
NULL
。 - RIGHT JOIN:返回右表的所有行,以及左表中的匹配行,如果左表没有匹配,返回
NULL
。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2022-12-15 1945. 字符串转化后的各位数字之和