在Oracle SQL中合并三个表

凯特

我有这三个桌子

表A:

code        aname
----------- ----------
1           A
2           B
3           C

表B:

code        bname
----------- ----------
1           aaa
1           bbb
2           ccc
2           ddd

表C

code        cname
----------- ----------
1           xxx  
1           yyy
1           zzz
2           www

如何使用单个查询实现这样的输出?

code        aname      bname       cname
----------- ---------- ----------  ----------
1           A          aaa         xxx
1           A          bbb         yyy
1           A          NULL        zzz
2           B          ccc         www
2           B          ddd         NULL
3           C          NULL        NULL

有什么建议么 ?

谢谢

戈登·利诺夫(Gordon Linoff)

看起来您希望表B和的“列表”垂直C通过使用,这是可行的row_number()但是,诀窍是在没有匹配项的情况下获得第三行。

这是一种方法。它使用完整的外部联接将bc名称组合在一起。然后,它left join用于引入a记录。

select a.code, a.name, bc.bname, bc.cname
from a left join
     (select coalesce(b.code, c.code) as code, bname, cname
      from (select code, bname, NULL as cname,
                    row_number() over (partition by code order by code) as seqnum
            from b
           ) b full outer join
           (select code, NULL as bname, cname,
                    row_number() over (partition by code order by code) as seqnum
            from c
           ) c
           on b.code = c.code and b.seqnum = c.seqnum
      ) bc
      on bc.code = a.code;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Oracle MERGE INTO将两个表中的数据合并到第三个表中

Oracle SQL连接三个表并按列分组

通过映射第三个表查询联接两个表,而无需从Oracle中的第三个表返回所有记录

在oracle 11g中加入三个表

如何将三个选择查询合并为一个以在 Oracle 中实现如下所需的结果?

Oracle SQL:使用第三个表之间引用的另一个表更新表列

在SQL中合并三个表的数据

插入到第三个表中基于两个另一个oracle

Oracle删除三个的重复组合

Oracle SQL:是否可以将不同表中的列合并到一个表中?

从三个不同的表中选择匹配值并将它们组合在 Oracle 中的一个表中

如何在 Oracle SQL 中的第一个连字符之后和第三个连字符之前提取数据

如何在Oracle中合并两个表

如何从2个表中添加/合并SUM Oracle,Basic

如何在oracle中合并/组合两个表

如何查询Oracle中的三个最佳参与者?

如何从Oracle的最后三个星期五中选择值?

如何合并三个表(MySQL)?

Oracle SQL触发器在插入/更新时计算2个值并更新第三个值

Oracle Query合并两个表

合并 Oracle 更新两个表

如何从SQL中的三个表中检索数据

从SQL中的三个表中选择数据

如何联接三个表以检查sql中的数据?

laravel 5.3中的三个表的SQL连接

SQL 在查询中连接三个表

从SQL Server中的三个表查询数据

从三个单独的表中收集数据,SQL

在第三个表中合并 2 个 mysql 表