SQL语句关联查询

一:连接类型:

关联查询:只有存在关联的表才能关联查询,完全独立的表之间无法关联  

1.关联的类型:自关联,左关联,右关联,全关联(full join)两张表都是主表

2.关联的表:两张以上,以一张(或已关联存在的表)为主表

3.关联条件:主表中的某列与副表中的某列(一一对应)>所有已关联的表可以看成一张主表,表中的列,都可以作为条件与将要被关联的副表关联

4.筛选条件:所有关联的表中的列,都可以作为数据筛选条件

5.查询范围:所有关联的表中的列,都可以被查询

原理:

1.当使用关联语句将两张表进行关联时,系统会通过关联条件,自动生成一张新的符合条件表,不管再进行关联,查询等任何其它操作

都是针对于这张新生成的表进行的。

2.一旦进行关联后,和原有的两张表就没有关系,它是一张新的表

3.生成新表的机制,主表的关联条件跟副表的关联条件进行匹配,满足条件的数据自动整合成一i条新的数据放入新表,这时如果副表的关联条件有重复,那么新生成表的数据就会重复,只有在匹配不到副表的情况下,副表数据才会为空,如果已匹配到就不会再去匹配空值

注意:

1.关联查询时,关联条件一定要主外键关联,不然会出现多余重复数据(不仅仅如此会造成重复数据,唯一衡量的标准即是:主,副表重复匹配)

2.2016-07-13

主外键关联时,如果主表的关联列是外键,会出现多余数据,副表数据查出来是空

 作用:2016-06-24

1.数据有紧密关联的必须用关联查询,如果用多条SQL语句拆开查询,一旦哪一环节改变,他无法把改变传递给下一环节,它们相互之间独立。

如果是关联查询任何一点的改变都会影响整条流程,所以,需要用关联查询的数据,必须用关联查询出来,而不是多条SQL语句拆分查出来

技巧:

1.在做关联查询时想要关联的副表很关键,有的时候不去关联已经存在的表,而是去关联查询出来的一张虚拟的表,这一点很重要,很多业务场景已有的表数据是不满足

注意:2017-12-28:关联查询,首先看主表,where中不加任何筛选条件,主表中所有数据都会查出来,然后再看关联表,再看关联关系,关联筛选条件,表和表直接的关联,

会先根据关联筛选条件 去查询关联表,得出虚拟表 再跟主表进行关联匹配,有就关联,多则重复加,没有则为空

原文地址:https://www.cnblogs.com/jianyi12/p/5596274.html