点击上方蓝字关注我们!
3.10.3 表间公式的表间关联是如何进行的
表间关联的作用是为了把两个或者多个表组合成一个大表,以便最后从这个大表中根据条件获取所需要的数据。
如果要把两个以上的表关联,可以先把两个表关联成一个表,再把 这个表与第三个表又关联成一个表,接着把这个表与第四个表又关联成一个表,如此类推, 直到所有表都关联在一起,形成一个大表。目前系统支持 3 种表间关联方式,分别是内连接(默认)、左连接、全连接,下面我们分别 对这三种关联方式进行解释:
一、内连接
一、内连接 这种关联是最常用的模式,也是默认使用的模式 两个表之间要实现关联,它们必须各自至少指定一列,然后通过这些列把两个表关联起 来;如下图所示:
我们可以用学生表的“编号”与成绩表的“学号”(即学生表.编号 = 成绩表.学号)把这两个 表关联成如下图所示的大表:
具体过程如下:
5、 如此类推,匹配出所有记录,最后组合成上面的大表。
注意:由于学生表中的“小李”和“小林”与成绩表的记录对应不上,同时成绩表中的 学号是“A6”的成绩记录也不能与学生表中的记录对应上,所以它们都会被放弃掉,也 就是说关联以后它们是不存在了。这是内连接的最大特点:两个表的记录必须完全满足 关联条件才会关联成功,否则就会被放弃
6、 假如要关联三个表,那么就把这个大表继续与第三个表按照类似的规则进行关联即 可。组合成一个大表以后,假如你要统计小明的总分数,那只要找出“姓名=小明”的记录,然后 把成绩加起来即可。
二、左连接
二、左连接 如果我们希望关联完成后,对于学生表中的学生记录,如果没有对应的成绩记录,也 要保留下来,结果如下图所示:(学生表 左连接 成绩表)
如上图所示:虽然学生表中的“小李”和“小林”在成绩表中没有对应的记录,但是 关联后仍然被保留下来,只是对应的成绩记录是空的而已。左连接关联的过程与“内连接”的过程几乎一样,只是把学生表中的与成绩表对应不 上的记录也保存下来,但是要注意,成绩表中也有两条“A6”记录与成绩表的记录对应 不上,但是它们却被放弃了,原因是左连接的规则是:左边表的记录如果对应不上也会 被保留,但是右边表对应不上的会被放弃。
三、全连接
三、全连接 如果我们希望关联完成后,对于学生表中的学生记录,如果没有对应的成绩记录,要 保留下来,同时成绩表中没有跟学生表对应上的记录也要保留下来,结果如下图所示:(学 生表 全连接 成绩表)
如上图所示,这个是在左连接的结果上多了成绩中的两条“A6”数据,这两条记录在左 连接中是被放弃的,但是在这里却被保留了,所以全连接的规则是:左右两边的记录如果对 应不上都会保留下来。注意:因为左关联或者全关联而产生的“空”数据,如下图所示:
这些“空”的数据既不是空字符串也不是 0,它是 NULL,也就是什么都不是,所以它们不能 直接用于进行比较或者参与运算,必须用“转换空值”函数把它们转为真实的值,然后才能 用于比较和运算,具体可以参考 3.10.1.8 涉及区分空值和零值的模板的特别说明
扫码关注我们
回复本公众号「20201111」可获取高清大图