news 2026/5/1 20:19:17

MySQL笔记·第4篇:多表查询详解——内连接、左连接、右连接、自连接一篇搞定

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL笔记·第4篇:多表查询详解——内连接、左连接、右连接、自连接一篇搞定

文章目录

      • 一、多表查询是什么?
      • 二、两张表,从头用到尾
      • 三、内连接(INNER JOIN):两边都要有
      • 四、左连接(LEFT JOIN):左边全要
      • 五、自连接:一张表自己连自己
      • 七、总结

一、多表查询是什么?

简单来说,在实际的项目管理中,数据库的查询不仅仅是查询一张表的数据,是两张或两张以上的表,这时候是要用到多表查询。


二、两张表,从头用到尾

本文所有例子都用这两张表:

-- 学生表CREATETABLEstudent(idINTPRIMARYKEY,nameVARCHAR(50));INSERTINTOstudentVALUES(1,'张三'),(2,'李四'),(3,'王五');-- 成绩表CREATETABLEscore(idINTPRIMARYKEY,student_idINT,scoreINT);INSERTINTOscoreVALUES(1,1,90),(2,1,85),(3,2,78);
student表score表
idnameidstudent_idscore
1张三1190
2李四2185
3王五3278

三、内连接(INNER JOIN):两边都要有

SELECT*FROMstudentINNERJOINscoreONstudent.id=score.student_id;

结果:

namescore
张三90
张三85
李四78

王五没成绩,不出现。

一句话:内连接 = 两边都对得上才留


四、左连接(LEFT JOIN):左边全要

SELECT*FROMstudentLEFTJOINscoreONstudent.id=score.student_id;

结果:

namescore
张三90
张三85
李四78
王五NULL

王五也出现了,只是成绩是NULL。

一句话:左连接 = 左表全留,右表有就带,没有就空

与左连接相似的是,右连接 = 右表全留。想用的时候,把表的顺序换一下,用左连接就行。实际开发中很少用右连接。


五、自连接:一张表自己连自己

-- 员工表CREATETABLEemployee(idINTPRIMARYKEY,nameVARCHAR(50),manager_idINT);INSERTINTOemployeeVALUES(1,'张三',NULL),(2,'李四',1),(3,'王五',1);-- 查每个员工的上级SELECTe.nameAS员工,m.nameAS上级FROMemployee eLEFTJOINemployee mONe.manager_id=m.id;

❗注意

✅需要对这一张表起两个别名

结果:

员工上级
张三NULL
李四张三
王五张三

一句话:自连接 = 一张表当两张表用


七、总结

连接类型一句话什么时候用
INNER JOIN两边都对得上才留只想要匹配上的数据
LEFT JOIN左边全留,右边随缘左表是主表,右表是补充
RIGHT JOIN右边全留,左边随缘用LEFT JOIN换位置就行,基本不用
自连接一张表当两张表用表里有上下级关系

一张图说清楚:

我是码蚁,正在学后端。如果这篇文章帮到了你,点个关注,下篇见。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 20:17:22

[新产品]医用门简介

${part1}在现代医疗卫生行业,医用门的选择直接关系到医疗机构的整体卫生水平和安全性。传统的门在医疗环境中往往无法满足严格的卫生要求和多样的功能需求,而我们的新产品——医贝尔医用门,则以其卓越的性能和人性化设计,为医疗机…

作者头像 李华
网站建设 2026/5/1 20:05:25

基于AI与现金流模拟的自托管个人财务预测机器人开发实践

1. 项目概述:一个能预知未来的个人财务管家如果你也像我一样,曾经因为忘记某个即将到来的账单,或者错误预估了现金流,结果在月底收到银行发来的“透支费”通知,那种感觉真的糟透了。市面上的记账App我试过不少&#xf…

作者头像 李华
网站建设 2026/5/1 20:05:23

构建AI智能体专业上下文工具:金融与生物信息领域实践

1. 项目概述:一个面向金融与生物信息领域的智能代理上下文工具最近在折腾一个挺有意思的项目,它本质上是一个为AI智能体(Agent)提供特定领域上下文(Context)的工具。这个工具的核心,是让像Claud…

作者头像 李华
网站建设 2026/5/1 20:04:34

华硕笔记本终极性能调校:G-Helper技术架构深度解析

华硕笔记本终极性能调校:G-Helper技术架构深度解析 【免费下载链接】g-helper G-Helper is a fast, native tool for tuning performance, fans, GPU, battery, and RGB on any Asus laptop or handheld - ROG Zephyrus, Flow, Strix, TUF, Vivobook, Zenbook, ProA…

作者头像 李华