【问题标题】:combine mutiple tables with different column in to one table将具有不同列的多个表合并为一个表
【发布时间】:2020-07-11 01:35:52
【问题描述】:

我有三个表,其中包含具有不同标题列的完全不同的数据。

  • 表 1) SQL_1 与列:col_1,col_2,col_3
  • 表 2) SQL_2 列:col_4,col_5,col_6
  • 表 3) SQL_3 列:col_7,col_8

我需要一个查询(或触发器)将所有这些数据从这三个表插入到 final_table。当所有表都具有相同的列但没有不同的列标题时,我可以执行这些操作。 提前致谢

【问题讨论】:

    标签: sql database-trigger


    【解决方案1】:

    这可以像(对于新表)一样简单

    select *
    into new_table
    from sql_1, sql_2, sql_3
    

    如果您创建了一个表,则可以使用以下内容填充它:

    insert into new_table (col_1, col_2, col_3, etc.,)
    select col_1, col_2, col_3, etc.,
    from sql_1, sql_2, sql_3
    

    (调整列名以适应)

    【讨论】:

    • 感谢您的回复,这将创建一个新表,但我想插入到现有表中。
    • 更新了我的答案以包含现有表格的相同样式。
    【解决方案2】:

    您可以使用UNION 语句和别名:

    INSERT INTO final_table
    SELECT col_1 AS c1, col_2 AS c2, col_3 AS c3 FROM SQL_1
    UNION
    SELECT col_4 AS c1, col_5 AS c2, col_6 AS c3 FROM SQL_2
    UNION
    SELECT col_7 AS c1, col_8 AS c2, NULL AS c3 FROM SQL_3
    

    并选择列别名以匹配final_table 中的列名。

    【讨论】:

    • 感谢您的回复。在这个我得到错误:关键字'select'附近的语法不正确,')'附近的语法不正确。这是触发器吗?
    猜你喜欢
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 2021-06-02
    • 1970-01-01
    • 2014-05-28
    • 2022-01-07
    • 2021-12-17
    相关资源
    最近更新 更多