我有一个查询。
with result as
(
select t1.name, t1.number, t2.number from table1 t1, table2 t2 where some conditions
union all
select t1.name, t1.number, t3.number from table1 t1, table3 t3 where some conditions
)select * from result
我需要在table5中插入t1.name和t2.number
table5与t1具有相同的列。
如果我做的话
insert in table5(name, number)
select r.name, r.number from result r
什么会被认为是r.number? t1.number还是t2.number?因为列具有相同的名称。还是有办法去辨别?如何使查询跳过t3.number的每一行?我能做到吗?
例如我有table1
A (+1)11111111
B (+1)22222222
C (+1)33333333
表2
(+2)44444444
(+2)55555555
首先选择会让我
A (+1)11111111 (+2)44444444
B (+1)22222222 (+2)55555555
表3
(+3)66666666
(+3)88888888
(+3)97898789
第二次选择的结果
B (+1)22222222 (+3)88888888
C (+1)33333333 (+3)97898789
这将是所有
的结果A (+1)11111111 (+2)44444444
B (+1)22222222 (+2)55555555
B (+1)22222222 (+3)88888888
C (+1)33333333 (+3)97898789
我最终想要的是
A (+2)44444444
B (+2)55555555
最终结果不应该包含此行
B (+1)22222222 (+3)88888888
C (+1)33333333 (+3)97898789
答案 0 :(得分:0)
两者。在某些行中,t2.number
为number
,而其他行t3.number
为number
。
单个结果集中union all
的结果。结果集不知道任何特定列中值的来源(尽管您可以包含具有此信息的另一列)。