oracle 多表查询 左右连接

来源:互联网 发布:麻将源码 编辑:程序博客网 时间:2024/04/26 17:22

多表查询

1、笛卡尔集

多个表查询时,不需要连接条件;所以笛卡尔集中就有数据是无效的;为了避免笛卡尔集可以在where中加入有效的连接条件。

连接n个表,至少需要n-1个连接条件。比如连接3个表,至少需要2个连接条件。

 

2、连接的类型

Oracle 连接:

Equijoin:等值连接

Non-equijoin:不等值连接

Outer join:外连接

Self join:自连接

 

3、外连接(左右连接)

希望、目的:对于某些不成立的记录,任然希望被包含在最后的结果中

使用外连接可以查询不满足连接条件的数据,外连接的符号是(+)

1、左连接:a.a=b.a(+);b表所有字段都显示

2、右连接:a.a(+)=b.a;a表左右字段都显示

3、全连接:

select   *   from   dali.test1   a,  dali.test2   b   where   a.a=b.a(+)  

union  

select   *   from   dali.test1   a,  dali.test2   b   where   a.a(+)=b.a;  


4、自连接

同一张表,2,以两个表中的不同列为条件连接。


原创粉丝点击