MySQL——内外连接

内连接

内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我们前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。
语法:select 字段 from 表1 inner(可以省略) join 表2 on 连接条件 and 其他条件; 其实这个连接条件本质也就是以前from语句中对两个表连接时的where条件的筛选

实例:我们将同样用到部门表 dept和员工表 emp来举例子: 显示SMITH的名字和部门名称</font>

这是查询的标准写法,用以前的先让两表做笛卡尔积先显示所有组成在按条件筛选也行,但这种写法本质还是内连接,既然现在学了就用标准写法

外连接

左外连接

语法:select 字段 from 表1 left join 表2 on 连接条件 and 其他条件;
如果联合查询,左侧的表完全显示我们就说是左外连接。
意思为如果不满足连接条件的话左侧的表1的数据会完全显示,而在表1中不满足条件的数据中的表2的数据会置为NULL
下面我们用具体例子再来理解;
-- 建两张表
create table stu (id int, name varchar(30)); -- 学生表
insert into stu values(1,'jack'),(2,'tom'),(3,'kity'),(4,'nono');
create table exam (id int, grade int); -- 成绩表
insert into exam values(1, 56),(2,76),(11, 8);


查询所有学生的成绩,如果这个学生没有成绩,也要将学生的个人信息显示出来

我们明显能看出本来id为4的学生是在成绩表中没有的但用了左外连接成绩表之后stu这个表的数据是全部显示的,不满足条件的id为4的右表的数据全部置为了NULL,这也能证明我说的是正确的

右外连接

那就很好理解了那就是右表的数据全部显示不满足条件的右表数据连接的左表的数据置为空
实例:对stu表和exam表联合查询,把所有的成绩都显示出来,即使这个成绩没有学生与它对应,也要显示出来

我们成热打铁来写到OJ题:分数排名
https://leetcode.cn/problems/rank-scores/description/?utm_source=LCUS&utm_medium=ip_redirect&utm_campaign=transfer2china

题目概述:


注意这道题有更好的解法只是用现在所学的知识只是能更好巩固消化,写完这道题也可以用其他更优解法
思路: 我们要做的就是拿到每个分数的对应排名,重复分数是同排名,那我们就可以自己进行内连接,当前分数为左表,比它分数高的为右表进行自连接 ,筛选条件为分数大于我的并且以当前分数进行group by 分组,那这样每组右表比左表的分数高,只要用聚合函数count() 计算有几个比它高的右表的分数然后加一就是当前组这个分数的排名

select s1.score,count( distinct s2.score)+1 rank from Scores s1 left join Scores s2 on s1.score < s2.score group by s1.id,s1.score order by rank;

相关推荐
dishugj12 分钟前
oracle日志切换三条命令区别
数据库
Patrick在香港25 分钟前
一个斜杠,把毫秒变成十几秒
android·数据库·python·性能优化·正则表达式·回溯·redos
悟道书生31 分钟前
(一)Navicate为什么转存结构和数据只转存表而不包含建库?
数据库·oracle
赤龙ERP1 小时前
ERP周报:连接器开闸、国产GPU进场与智能工厂253家
数据库·人工智能·大模型·rpa·erp·企业数字化·builderpattern
lusklusklusk1 小时前
SQL Server补丁版本号为什么“日期新反而版本低”?——GDR、CU、CU+GDR 版本号规则与升级路径详解
数据库
key_3_feng1 小时前
评估与对齐:Agent 自我进化的护栏
前端·数据库·agent
TangGeeA2 小时前
数据库、SQL 与 DB AI
数据库·人工智能·sql
IvorySQL2 小时前
开源数据库进校园| 11 月 3 日,IvorySQL 校园行走进浙大宁波校区:从 PostgreSQL 扩展生态到 AI 实战
数据库·postgresql·开源
福建佰胜张工2 小时前
深度解析 Allen-Bradley 150-B135NBDA 智能电机控制器:选型、参数与工业应用
运维·数据库·单片机·嵌入式硬件·安全·自动化
海雅达手持终端PDA2 小时前
工业手持终端的“去手机化”演进:看海雅达如何以“同轴扫摄”终结工程妥协,重塑工业PDA新范式
android·物联网·智能手机·硬件工程·能源·制造·iot