在Oracle的一个select查询中合并不同表的不同列

在Oracle的一个select查询中合并不同表的不同列,oracle,Oracle,我有两张桌子: 表:A、B、C、D列的AA 表:带E、F和G列的BB 我想得到这两个表的组合输出,如下所示: A | B | C | D | E | F | G 我目前正在做以下工作: Select * from ( ( select A, B, C ,D from AA where some condition) UNION ALL ( select E , F , G , NULL from BB where some condition) ) 但它给我的输出只包含AA表中的A,

我有两张桌子: 表:A、B、C、D列的AA 表:带E、F和G列的BB

我想得到这两个表的组合输出,如下所示:

A | B | C | D | E | F | G
我目前正在做以下工作:

Select * from ( 

( select A, B, C ,D from AA where some condition)

UNION ALL

( select E , F , G , NULL from BB where some condition) )
但它给我的输出只包含AA表中的A,B,C,D,而没有从BB表中添加E,F,G


我做错了什么?

不确定您的想法到底是什么,但如果您只想在同一个表中显示AA和BB的纯数据,那么您可以使用类似的方法

 ( select A, B, C ,D, NULL as E, NULL as F, NULL as G from AA where some condition)

 UNION ALL

( select NULL as A , NULL as B, NULL as C, NULL as D, E , F , G  from BB where some condition) )
但不确定这有什么意义:|


如果您需要一些数据组合,那么join必须具有。

如果您要查找类似以下内容的结果:

A1  B1  C1  D1 
A2  B2  C2  D2 
A3  B3  C3  D3 
E1  F1  G1 
E2  F2  G2
那就试试类似的东西

(select A Fld1, B Fld2, C Fld3, D Fld4 from AA where some condition)
union
(select E Fld2, F Fld2, G Fld3, Null from BB where some condition)

换句话说,为两个选择之间相同的字段指定一个通用别名。当然,这些字段必须是相同的类型。

如果您希望它们并排出现,则需要将它们连接起来。ubiob查询正在添加来自BB的数据(如果条件为true),但它将其连接到AA数据的末尾。这些表有共同的字段吗?换句话说,A和E本质上是相同类型的数据吗?