请教如何合并两张表相同数据,不同数据分别展示

fsh2008 2014-12-15 05:21:42
目前有两张表:
A表:
AID NAME
a A
b B
c C

B表
BID NAME
d A
e E
f F

最终希望A表和B表的NAME比较,如果相等,那么显示成一条数据,如果不等,分别显示出来(没有的数据为null)
结果如下:
A.AID A.NAME B.BID B.NAME
a A d A
b B null null
c C null null
null null e E
null null f F

研究了很久,还是没找到解决方案,麻烦哪位帮下
...全文
308 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
happyjennyluo 2014-12-16
  • 打赏
  • 举报
回复
bw555 2014-12-15
  • 打赏
  • 举报
回复
引用 4 楼 fsh2008 的回复:
[quote=引用 2 楼 bw555 的回复:]
select A.AID,A.NAME,B.BID,B.NAME
from A FULL JOIN B
ON A.NAME=B.NAME
不行呀,这样得到的结果只有三条数据了,没有那种空的。[/quote]
SQL> WITH A AS (
  2  select 'a' as AID,'A' AS NAME FROM DUAL UNION ALL
  3  select 'b' as AID,'B' AS NAME FROM DUAL UNION ALL
  4  select 'c' as AID,'C' AS NAME FROM DUAL
  5  ),B AS (
  6  select 'd' as BID,'A' AS NAME FROM DUAL UNION ALL
  7  select 'e' as BID,'E' AS NAME FROM DUAL UNION ALL
  8  select 'f' as BID,'F' AS NAME FROM DUAL
  9  )
 10  select A.AID,A.NAME,B.BID,B.NAME
 11  from A FULL JOIN B
 12  ON A.NAME=B.NAME;

A N B N
- - - -
a A d A
    e E
    f F
c C
b B

SQL>
测试结果,自己看,真不知道你实际是咋写的,晕死
fsh2008 2014-12-15
  • 打赏
  • 举报
回复
引用 2 楼 bw555 的回复:
select A.AID,A.NAME,B.BID,B.NAME
from A FULL JOIN B
ON A.NAME=B.NAME
不行呀,这样得到的结果只有三条数据了,没有那种空的。
happyjennyluo 2014-12-15
  • 打赏
  • 举报
回复
select a.aid,a.name,b.bid,b.name from tableA a left join tableB b on a.name=b.name
union
select a.aid,a.name,b.bid,b.name from tableB b left join tableA a on a.name=b.name

bw555 2014-12-15
  • 打赏
  • 举报
回复
select A.AID,A.NAME,B.BID,B.NAME
from A FULL JOIN B
ON A.NAME=B.NAME
bw555 2014-12-15
  • 打赏
  • 举报
回复
使用full join即可

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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