我必须在我的数据库中使用表格:
table1
column1|column2|column5|column13
harry marry stan kyle
table2
column1|column2|column12|column7
kenny eric randy ike
正如您所看到的,每个表中有两列具有相同的名称,两个具有不同的名称,我想将它们合并为一个,这是我想要实现的输出
column1|column2|column5|column13|column12|column7
harry marry stan kyle null null
kenny eric null null randy ike
或
column1|column2|column5|column12|column13|column7
harry marry stan null kyle null
kenny eric null randy null ike
这可能吗?如何?我尝试过类似的东西:
(select t1.column1 from table1 t1 union select t2.column1 from table t2)
但我被卡住了..
答案 0 :(得分:6)
你应该能够做到
SELECT t1.column1,
t1.column2,
t1.column5,
null column12,
t1.column13,
null column7
FROM table1 t1
UNION ALL
SELECT t2.column1,
t2.column2,
null column5,
t2.column12,
null column13,
t2.column7
FROM table2 t2
如果数据类型(特别是长度)很重要,您可能需要CAST(null as VARCHAR2(100))
而不是仅在第一个查询中选择NULL。
答案 1 :(得分:2)
查看此前一个问题。尽管MySQL不直接支持这一点,但听起来你想做一个完整的外部联接。有一种方法可以达到这个目的。
答案 2 :(得分:2)
select
column1 as column1,
column2 as column2,
column5 as column5,
column13 as column13,
null as column12,
null as column7
from T1
union
select
column1 as column1,
column2 as column2,
null as column5,
null as column13,
column12 as column12,
column7 as column7
from t2
答案 3 :(得分:0)
但如果您反对这些结果,您可以尝试以下方法。我不确定这些表之间的连接是什么,所以我做了一个假设
Select table1.column1,table1.column2,column5,column13,column12,column7
from
( Select column1,column2,column5,column13,column12,column7
from table1
left join table2 on table1.column1 = table2.column1
)
union
(
Select table1.column1,table1.column2,column5,column13,column12,column7
from table2
left join table1 on table1.column1 = table2.column1
)
答案 4 :(得分:0)
您必须列出需要输出的所有列。
select t1.c1, t1.c2, t1.c3, t1.c4, '' ,'' from t1
union
select t2.c1, t2.c2, '','' , t2.c7, t2.c8 from t2
那是工作吗?