最近修正了使用左合并的数据问题。 在我的意识中,我以为a在左边连接b,检索到的记录数是a的记录数,但实际操作后发现认知大错误。
关于网上左连接的图
摘自网上的图。 图确实没有故障,但产生了误会。 我想记录数依然是a表的记录数。
现在举例说明问题
举一个例子
事件表中的数据如下
1
2
3
4
5id,name,地址
1,stu_1,beijing
3,stu_3,dalian
22,alan,wuhan
55,阿兰,辛江
地址表中的记录如下
1
2
3地址,id,描述
新江,1,新江真美
辛江,2,辛江真大
左连接操作如下
1
2
3选择*
from student a
leftjoinaddressbona.address=b.address
最终结果集记录数为5,address注意到辛江有两个数据。 WHY? 因为地址是新兴江确实在地址表中是两个记录。
结论
在W3Schools上,关于左连接是这样说的
theleftjoinkeywordreturnsallrecordsfromthelefttable (table1),andthematchedrecordsfromtherighttable (table2).theresultilt
如果这句话很完美,就会显示与table2匹配的所有记录。
最终左链接的记录数必须为=table1表记录数。 因为即使关联条件在table2中找不到关联记录也必须显示,但如果找到并不唯一,则还必须组合显示多个不唯一的记录。
当然,对于右链接、内链接或多个条件匹配的情况,结果相似。
最后写
问题很简单,但需要注意。