我有两张桌子: 表:AA,A列,B列,C列,D列 表:BB列,E列,F G
我想得到的输出是这两个表的组合,如下所示:
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。
我做错了什么?
答案 0 :(得分: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) )
但不确定这是什么意思:|
如果你想要一些数据组合,那么必须加入。
答案 1 :(得分: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)
换句话说,为两个选择之间相同的字段指定一个公共别名。当然,这些字段必须是相同的类型。