今日总结

2020年11月12日:

外连接分为左外连接和右外连接两种。

左外连接,是包括 A,B 表的交集 和 A 表的数据 ,如果 A 表中有的数据 B 表没有找到相等的,会显示A表的数据,B表中的部分会为 null ,下面的结果就是成绩表中没有赵六和田七的数据的结果

如果 and 写在 on 后面,表示的是在做关联时不关联被过滤掉的数据,比如上面的数据,写 and sc.score>60 条件之后,会过滤掉成绩<=60的数据,而张三丰每一门课的成绩都小于60,但是会有张三丰的数据,只是后面的为null,如下:

上面的数据是过滤掉成绩小于60的数据之后,张三丰的成绩都小于60,并不是没有张三丰这个数据了,而是他后面的为null,可以这样理解,on 后面的 and 条件是代表关联与否,不满足就不关联,但A表的数据还是要全部都有的。

如果成绩>60是写在where 里的,where 是对结果进行过滤的,所以会把上面的结果不满足成绩>60的数据过滤掉,即:

右外链接,同左外链接一样,包括并集和B表的数据。

学生表和成绩表做又外连接的时候,成绩表中有一条 1008 的数据在学生表中没有,结果如下:

对上面的结果进行 成绩 >60 的条件过滤

原文地址:https://www.cnblogs.com/yitiaokuailedexiaojingyu/p/14125867.html