全外连接的union改写方法
来源:互联网 发布:windows to go有什么用 编辑:程序博客网 时间:2024/05/16 15:45
对于SQL中的连接操作在实现业务需求的时候比较方便和高效,这里针对“全外连接”展示一下在Oracle中的两种写法。
每种写法因人而异,以达到实验需求为目的。
有关内连接,左连接和右连接的简单演示请参考:《【实验】内连接,左连接,右连接,全外连接》http://space.itpub.net/519536/viewspace-563019
1.创建实验表并初始化实验数据
SQL> create table a (a number(1),b number(1),c number(1));
SQL> create table b (a number(1),d number(1),e number(1));
SQL> insert into a values(1,1,1);
SQL> insert into a values(2,2,2);
SQL> insert into a values(3,3,3);
SQL> insert into b values(1,4,4);
SQL> insert into b values(2,5,5);
SQL> insert into b values(4,6,6);
SQL> commit;
2.查看一下初始化数据内容
sec@ora10g> select * from a;
A B C
---------- ---------- ----------
1 1 1
2 2 2
3 3 3
sec@ora10g> select * from b;
A D E
---------- ---------- ----------
1 4 4
2 5 5
4 6 6
3.第一种写法,这也是标准SQL的写法。功能明确,不过理解有点小障碍。
sec@ora10g> select * from a full outer join b on a.a = b.a;
A B C A D E
---------- ---------- ---------- ---------- ---------- ----------
1 1 1 1 4 4
2 2 2 2 5 5
3 3 3
4 6 6
4.第二种写法,思路是:全外连接就是左外连接和右外连接数据集合的并集。因此将左外连接和右外连接union后变得到我们的最终结果
sec@ora10g> select * from a, b where a.a = b.a(+)
2 union
3 select * from a, b where a.a(+) = b.a
4 /
A B C A D E
---------- ---------- ---------- ---------- ---------- ----------
1 1 1 1 4 4
2 2 2 2 5 5
3 3 3
4 6 6
5.注意
注意比较两种写法对于不同数据集合的结果。
本篇文章来源于 新世纪网安基地 (www.520hack.com) 原文出处:http://www.520hack.com/Article/Text7/wgfile/200911/16454.html
- 全外连接的union改写方法
- 【FULL OUTER JOIN】全外连接的union all改写方法
- String的equals方法改写
- 外连接与union
- OR 改写union数据变少
- asp连接数据库的方法(全)
- asp连接数据库的方法(全)
- mysql全连接的代替方法
- 改写方法
- 【转】外连接&全连接的区别
- 改写equals与hashCode的简单方法
- 用UFLDL的方法改写Denoising Autoencoder
- 灵活运用runtime改写系统的方法
- 改写中断例程的方法(1504)
- 改写CNN网络的一些问题解决方法
- 左连接、右连接、内连接、外连接、union连接
- 【SQL优化】B树索引位图转换及OR到UNION(ALL)的改写
- 优化案例2-----or 等价改写 union all 的经典案例
- sql递归查询问题
- Linux SSH 相关配置文件的修改(对网络交换,控制,很有用)
- 使用字符串连接的方式来执行Sql语句
- 应用场景:将员工不同的职位合并到同一列
- Emacs的字体设置
- 全外连接的union改写方法
- 算法的时间复杂度
- Shared Memory Example
- 很好玩的面向对象诠释图
- 亲爱的朋友们 打个招呼
- 小学校长给父母的话
- tcp状态转换图
- SQL里的EXISTS与in、not exists与not in
- 如何调试Python