oracle中部分字段相同的两张表合并

fubi9546 2017-02-07 11:24:15
表t1有字段a、b,如:
a b
1 5
2 8
3 9
表t2有字段a、c,如:
a c
2 10
3 4
4 5
查询后把两张表的数据合起来显示的字段为a、b、c,如:
a b c
1 5
2 8 10
3 9 4
4 5
百度看到一个用法union,
select a, b, null as c from t1
union
select a,null as b, c from t2
测试却是结果如下:
a b c
1 5
2 8
2 10
3 9
3 4
4 5
百度还有人说用full join,请问a列如何处理?整个语句该如何写?谢谢
...全文
3066 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
啊啊啊西吧 2017-07-11
  • 打赏
  • 举报
回复
引用 2 楼 fubi9546 的回复:
经测试成功。谢谢了!
一楼的例子怎么用的啊,难道要把表里那么多数据一条一条select出来吗???
啊啊啊西吧 2017-07-11
  • 打赏
  • 举报
回复
引用 3 楼 fubi9546 的回复:
大侠,还有个问题顺便请教(不好意思,这个没分了): 如果是多张表,如3、4张表,每个表都有相同字段a,不同的字段b、c、d、e,按照上面的方式全部合并,我只会先表t1和表t2合并,然后新表再与表t3合并……,逐一处理,请问这样处理好吗?是否有更好的处理方法? 谢谢!
我也是12个表,两个两个合并,好慢啊,,,
fubi9546 2017-02-08
  • 打赏
  • 举报
回复
大侠,还有个问题顺便请教(不好意思,这个没分了): 如果是多张表,如3、4张表,每个表都有相同字段a,不同的字段b、c、d、e,按照上面的方式全部合并,我只会先表t1和表t2合并,然后新表再与表t3合并……,逐一处理,请问这样处理好吗?是否有更好的处理方法? 谢谢!
fubi9546 2017-02-08
  • 打赏
  • 举报
回复
经测试成功。谢谢了!
蓝色蛋饼 2017-02-08
  • 打赏
  • 举报
回复
with taba as
(
select  1 a,5 b from dual union all 
select 2,8  from dual union all 
select 3,9 from dual ),
tabb as
(
select  2 a,10 b from dual union all 
select 3,4  from dual union all 
select 4,5 from dual 
)
select nvl(taba.a, tabb.a), taba.b, tabb.b
  from taba
  full join tabb
    on (taba.a = tabb.a)
 order by nvl(taba.a, tabb.a)

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧