7种join模式应用
将以上的集合分为三个区域:
1.AB交集区域:此处表示A和B的连接属性都不为NULL的元组部分。直接用join连接两表即是得到该区域。
2.A的独立区域:A不为NULL,B为NULL的部分。先左连接,即可得到1,2两个区域,然后再用where b.primarykey is null;即可去掉A,B交集的区域
3.B的独立区域:B不为NULL,A为NULL的部分。先右链接,即可得到1,3两个区域,然后再用where a.primarykey is null;即可去掉A,B交集的区域
区域的链接:
1.union为去重型连接,即连接时会将重复的区域清除,此方法因为要检测重复区域,所以效率会低一些。
2.union all非去除型连接,即连接不去重,重复部分计算多次,因直接连接,所以效率会高一些。
Mysql不支持full join 满连接,所以要用union来实现该功能。