【问题标题】:SQL Merge tables with two different columnsSQL合并具有两个不同列的表
【发布时间】:2018-03-18 18:49:30
【问题描述】:

我有两个如下所示的表:

表1:

表2:

我想合并它们,以创建一个带有如下标题的表格:

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

前 9 行应该是第一个表的最后 3 列有空值,然后是第二个表的前 4 列有空值的 3 行。很抱歉我不能发布图片或第三个链接,但我的声誉太低了。我希望它是可以理解的。

我尝试创建一个新表并使用union 从两者中选择所有内容,但这不起作用。有人可以帮帮我吗?

谢谢!

【问题讨论】:

  • 您必须将表格结构和示例数据作为文本放在问题中,而不是在外部图像中,以便人们可以轻松查看并复制/粘贴以进行测试。

标签: sql merge


【解决方案1】:

这就是我希望决赛桌的样子:

【讨论】:

    【解决方案2】:

    您可以使用 ALTER 将最后 3 列添加到表 1。从那里,将表 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
    

    【讨论】:

      【解决方案3】:

      您可以结合使用联接和联合

      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;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多