
文章目录一、多表查询是什么二、两张表从头用到尾三、内连接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_idscore1张三11902李四21853王五3278三、内连接INNER JOIN两边都要有SELECT*FROMstudentINNERJOINscoreONstudent.idscore.student_id;结果namescore张三90张三85李四78王五没成绩不出现。一句话内连接 两边都对得上才留四、左连接LEFT JOIN左边全要SELECT*FROMstudentLEFTJOINscoreONstudent.idscore.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_idm.id;❗注意✅需要对这一张表起两个别名结果员工上级张三NULL李四张三王五张三一句话自连接 一张表当两张表用七、总结连接类型一句话什么时候用INNER JOIN两边都对得上才留只想要匹配上的数据LEFT JOIN左边全留右边随缘左表是主表右表是补充RIGHT JOIN右边全留左边随缘用LEFT JOIN换位置就行基本不用自连接一张表当两张表用表里有上下级关系一张图说清楚我是码蚁正在学后端。如果这篇文章帮到了你点个关注下篇见。