高级SQL查询

时间:2011-05-11 14:45:08

标签: mysql sql database oracle postgresql

我必须在我的数据库中使用表格:

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)

但我被卡住了..

5 个答案:

答案 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不直接支持这一点,但听起来你想做一个完整的外部联接。有一种方法可以达到这个目的。

Full Outer Join in 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

那是工作吗?

相关问题