之前做左连接查询的时候,有一个错误的概念 总认为用来进行左连接的基础表数据是整个左连接结果的依据,
认为 左连接后的表数据量应该总小于等于基础表的数据量,其实是错误的,
现在有一个班级表 保存了一个班级的信息
create table class(
cid number(6,0) primary key not null,
classname nvarchar2(16) not null
)
有一个学生表 保存了两个学生的信息
create table students(
sid number(6,0) primary key not null,
sname nvarchar2(16) not null,
cid number(6,0)
)
通过cid进行关联 现在用班级表左连接查询学生表,查看产生的数据条数,之前错误的想法是 只会有基础表的数据量就是一条
实际上效果如下:
select c.*, s.* from class c
left join students s
on c.cid=s.cid;内有两条数据,说明 班级是一对多的关系,数据量取决于 多方的数据量!
左连接理解误区
本文澄清了一个关于SQL左连接的常见误解:左连接结果集的大小并非总是等于左侧表的记录数。通过创建班级表和学生表的例子展示了左连接的实际工作方式,并解释了一对多关系如何影响结果集的大小。
1331

被折叠的 条评论
为什么被折叠?



