SQL Merge表有两个不同的列

时间:2017-10-06 22:11:48

标签: sql merge

我有两个看起来像这样的表:

表1:

enter image description here

表2:

enter image description here

并且我想合并它们,以创建一个带有这样的标题的表:

variablenname | mean | stddev | ms_form | dependent | fvalue | probf

前九行应该是第一个在最后3列中具有空值的表,后面是第二个表中的三行,在前4列中具有空值。对不起,我无法发布图片或第三个链接,但我的声誉太低了。我希望这是可以理解的。

我尝试创建一个新表,然后从union选择所有内容,但这并不起作用。有人能帮助我吗?

谢谢!

3 个答案:

答案 0 :(得分:0)

这就是我希望决赛桌看起来像这样的样子: enter image description here

答案 1 :(得分:0)

您可以使用ALTER将最后3列添加到表1.从那里,将INSERT表2插入到表1中。就像这样。

ALTER table1 ADD dependent varchar(16)
ALTER table1 ADD favalue varchar(16)
ALTER table1 ADD probf varchar(16)

INSERT INTO table1(dependent, fvalue, probf)
  SELECT * FROM table2

答案 2 :(得分:0)

您可以使用联接和联合的组合

LEFT JOIN在第一次查询中的两个表中没有匹配的字段 然后UNION第二个查询与RIGHT JOIN相同的表。

LEFT JOIN只显示第一个表的结果,然后RIGHT JOIN只会显示第二个结果

喜欢的东西:

SELECT * FROM table1 as t1 
LEFT JOIN table1 as t2 on t1.variablenname = t2.fValue 
UNION 
SELECT * FROM table1 as t1 
RIGHT JOIN table1 as t2 on t1.variablenname = t2.fValue;