首页 > 代码库 > oracle外连接 (+)

oracle外连接 (+)

http://www.cnblogs.com/opaljc/archive/2013/04/09/3009898.html
 
外连接有以下三种(一般没有left、right、full等关键字的都是内连接):
1. 左外连接(以左表为基础表,左表全量数据):left [outer] join
2. 右外连接(以右表为基础表,右表全量数据):right [outer] join
3. 全外连接(两表都是基础表):full  [outer] join
 
对于外连接,也可以使用“(+)”来表示。但须注意:
1. (+)操作符只能出现在where子句中,并且不能与outer join语法同时使用
2. 当使用(+)操作符执行外连接时,如果在where子句中包含有多个条件,则必须所有条件中都包含(+)操作符
3. (+)操作符只适用于列,而不能用在表达式上
4. (+)操作符不能与or和in操作符一起使用
5. (+)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接
 
用(+)来实现,这个+号可以这样来理解:+ 表示补充,即哪个有+,这个表就是匹配表,另外的则是基础表。
例子
select t1.c1,t2.c2 from t1,t2 where t1.c=t2.c(+)    --左连接
select t1.c1,t2.c2 from t1,t2 where t1.c(+)=t2.c    --右连接