oracle左外连接、右外连接、完全外连接以及(+)号用法
2016-12-31 11:53
337 查看
准备工作
oracle连接分为:左外连接:左表不加限制,保留左表的数据,匹配右表,右表没有匹配到的行中的列显示为null。
右外连接:右表不加限制,保留右表的数据。匹配左表,左表没有匹配到的行中列显示为null。
完全外连接:左右表都不加限制。即右外连接的结果为:左右表匹配的数据+左表没有匹配到的数据+右表没有匹配到的数据。
连接的语法:
left/right/full outer join ...on
left/right/full join ...on
(+)号的作用:+号可以理解为补充的意思,加在那个表的列上就代表这个表的列为补充。加在右表的列上代表右表为补充,为左连接。加在左表的列上代表左表为补充,为右连接。注意:完全外连接中不能使用+号。
创建两种表,生出测试数据:
CREATE TABLE t_A ( id number, name VARCHAR2(10) ); CREATE TABLE t_B ( id number, name VARCHAR2(10) ); INSERT INTO t_A VALUES(1,'A'); INSERT INTO t_A VALUES(2,'B'); INSERT INTO t_A VALUES(3,'C'); INSERT INTO t_A VALUES(4,'D'); INSERT INTO t_A VALUES(5,'E'); INSERT INTO t_B VALUES(1,'AA'); INSERT INTO t_B VALUES(1,'BB'); INSERT INTO t_B VALUES(2,'CC'); INSERT INTO t_B VALUES(1,'DD'); INSERT INTO t_B VALUES(7,'GG');
左外连接
select * from t_a a left join t_b b on a.id=b.id; select * from t_a a,t_b b where a.id=b.id(+);
右外连接
select * from t_a a right join t_b b on a.id = b.id; select * from t_a a,t_b b where a.id(+)=b.id;
![](http://img.blog.csdn.net/20161231115559652?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmx5X3p4eQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
完全外连接
select * from t_a a full join t_b b on a.id=b.id;
等值连接(我们在看看等值连接的结果)
select * from t_a a,t_b b where a.id=b.id; select * from t_a a join t_b b on a.id=b.id;--等值连接也可以这样写
注意:以前理解等值连接和完全外连接是一回事,现在看来是我理解错了。等值连接是只把满足条件的两个表的行相连,然后显示出来。完全外连接是把匹配查询条件的行、左表没有匹配到的、右表没有匹配到的都显示出来。
参考文章:http://www.cnblogs.com/hehaiyang/p/4745897.html
相关文章推荐
- Oracle左连接、右连接、全外连接以及(+)号用法
- Oracle左连接、右连接、全外连接以及(+)号用法
- Oracle左连接、右连接、全外连接以及(+)号用法
- Oracle左连接、右连接、全外连接以及(+)号用法
- Oracle左连接、右连接、全外连接以及(+)号用法
- Oracle(+)号用法 Oracle左连接、右连接、全外连接以及(+)号用法
- Oracle左连接、右连接、全外连接以及(+)号用法
- Oracle左连接、右连接、全外连接以及(+)号用法(转)
- 10、Oracle:左连接、右连接、全外连接以及(+)号用法
- Oracle左连接、右连接、全外连接以及(+)号用法
- Oracle之左连接、右连接、全外连接以及(+)号用法
- Oracle左连接、右连接、全外连接以及(+)号用法
- Oracle左连接、右连接、全外连接以及(+)号用法(转)
- Oracle左连接、右连接、全外连接以及(+)号用法
- Oracle学习笔记—Oracle左连接、右连接、全外连接以及(+)号用法(转载)
- Oracle左连接、右连接、全外连接以及(+)号用法
- Oracle左连接、右连接、全外连接以及(+)号用法
- Oracle 外连接和 (+)号的用法
- ORACLE 的游标、存储过程、触发器以及表的连接查询
- Oracle Spool的用法小结以及两种方法的比较----------导出记录到文本 分享