sql 中的join方式

来源:互联网 发布:贪吃枫淘宝店 编辑:程序博客网 时间:2024/06/06 04:56

 

连接类型

定义

 

Inner Join

内连接是最常见的一种连接,它也被称为普通连接,只连接匹配的行(仅对满足连接条件的CROSS中的列)。它又分为等值连接(连接条件运算符为"=")和不等值连接(连接条件运算符不为"=",例如between...and)。

 

Outer Join

Full Outer Join

包含左、右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行。

Left Outer Join

包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行

Right Outer Join

包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行

 

Cross Join

笛卡尔乘积(所有可能的行对),交叉连接用于对两个源表进行纯关系代数的乘运算。它不使用连接条件来限制结果集合,而是将分别来自两个数据源中的行以所有可能的方式进行组合。

 

 

Appendix

Natural Join

自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉;而等值连接不会去掉重复的属性列。

Self Join

某个表和其自身连接,连接方式可以是内连接,外连接,交叉连接

 

Inner Join:

Select * from t1,t2 where t1.id=t2.c1

Select * from t1 inner join t2 ont1.id=t2.c1

Select * from t1,t2 where t1.id between 1and 4;

 


Full Outer Join:

Select * from t1 full outer join t2 ont1.id = t2.c1



Left Outer Join

Select * from t1 left outer join t2 ont1.id =t2.c1;



Right Outer Join

Select * from t1 right outer join t2 ont1.id =t2.c1;



Cross Join(笛卡尔乘积)

Select * from t1 cross join t2;

 

Natural Join (t1和t3表都有id列并且数据类型一样),同名的列不超过1个

Select * from t1 naturaljoin t3;


Self Join

Select * from t1 as t1_s, t1;

0 0
原创粉丝点击