-1

我有两个表: 表: AA 与列 A、 B 、 C、 D 表: BB 与列 E 、 FG

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

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 。

我究竟做错了什么?

4

2 回答 2

1

不确定您的想法是什么,但是如果您只想在同一个表中显示来自 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) )

但不确定这是什么意思:|

如果你想要一些数据组合,那么连接是必须的。

于 2013-01-23T23:40:53.490 回答
0

如果您正在寻找看起来像这样的结果:

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)

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

于 2013-01-23T23:41:42.933 回答