sql | 左连接、右连接、内连接、全连接

其实这个内容算是老掉牙了
左连接、右连接、内连接、全连接从字面上都好理解

接下来我们来一一解疑
左连接:以左表为主表,根绝条件匹配右表,当右表部分记录因为条件不匹配显示为空,所以最终结果是左表全显示,右表存在字段缺失
右连接:同理
内连接:根据条件筛选,最终只显示共同部分(交集字段)
外连接:把两个表的所有字段都显示出来

接下来讲一个例子,

有学生表,学生id、课程id

成绩表,学生id、课程id、学科成绩

求成绩最高分?

这是不是有歧义?

这其实是两个问题,一个求单科最高分,另个求的总成绩最高分

注意,必然涉及单科最高分有多名学生。总分最高分有多名学生。

具体业务,需要思考一下这个点

然后就是很简单啦。

先做总分最高的

先求所有科目总分然后得到最高分,然后再和课程表左连接(注意和新的课程表连接,必然要保留我们查到的总成绩的那个结果完整)然后将结果再和学生表做连接(同理,也是要保留我们上一步结果的完整性,采用左连接) (注意描述可能会 有点模糊 但是重点原则 就是 必须让我们经过筛选后得到的表与新表做连接时保留完整)

做单科最高分,可是同理

先根据单科找最高分,在自连接(左连接、还是右连接,看选择那块表为左,哪块表为右),最后得到总分最高,又有学生id 的新表,最后再和学生表连接(左连接还是右连接 同理)最后就找到成绩最高的学生以及ta 的成绩

相关推荐
小江的记录本8 分钟前
【事务】Spring Framework核心——事务管理:ACID特性、隔离级别、传播行为、@Transactional底层原理、失效场景
java·数据库·分布式·后端·sql·spring·面试
sheji341615 分钟前
【开题答辩全过程】以 基于springboot的校园失物招领系统为例,包含答辩的问题和答案
java·spring boot·后端
寂静or沉默20 分钟前
2026最新Java岗位从P5-P7的成长面试进阶资源分享!
java·开发语言·面试
卓怡学长21 分钟前
m289在线交友系统
java·spring·tomcat·maven·intellij-idea·hibernate
英俊潇洒美少年28 分钟前
vue如何实现react useDeferredvalue和useTransition的效果
前端·vue.js·react.js
kyriewen111 小时前
给浏览器画个圈:CSS contain 如何让页面从“卡成PPT”变“丝滑如德芙”
开发语言·前端·javascript·css·chrome·typescript·ecmascript
英俊潇洒美少年1 小时前
react19和vue3的优缺点 对比
前端·javascript·vue.js·react.js
zhglhy2 小时前
Java分库分表技术对比分析
java·分库分表
wuyikeer2 小时前
Spring Framework 中文官方文档
java·后端·spring
豆豆的java之旅2 小时前
软考中级软件设计师 数据结构详细知识点(含真题+练习题,可直接复习)
java·开发语言·数据结构