在oracle sql中组合三个表

时间:2016-06-08 10:45:39

标签: sql oracle

我有这三张桌子

表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

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:3)

您希望表“{1}}和B的”列表“是垂直的。这是可行的,使用C。然而,诀窍是让第三行没有匹配。

这是一种方法。它使用完全外部联接将row_number()b名称组合在一起。然后,它会使用c来引入left join条记录。

a