【问题标题】:How to make one table from two tables in SQLSQL中如何从两张表中创建一张表
【发布时间】:2015-01-05 04:32:53
【问题描述】:

我在 MySQL 中有两个表,我想将它们组合成一个大表。两个表具有完全相同的列(主索引id 列和snippet 列,它是一个字符串),但具有不同的数据。它们是从不同的 .csv 文件加载的,因为当不拆分文件时,文件太大而无法一次性上传到 phpMyAdmin。

现在,我想将这两个表合并为一个。

到目前为止,我在 StackOverflow 上找到的所有问题都是关于想要合并两个表的结果。

例如:将一些数据从一个表映射到另一个表。但我想物理合并这两个表,以便将它们存储为一个 SQL 表。

如何做到这一点?

【问题讨论】:

    标签: sql csv phpmyadmin


    【解决方案1】:

    给你的例子

    CREATE TABLE new_table
      AS (SELECT * FROM first UNION ALL SELECT * FROM second);
    

    【讨论】:

    • 这个解决方案工作,只要我删除括号。但这可能只是 SQL 版本之间的区别。 (我不明白为什么括号会使其失败)。谢谢!
    【解决方案2】:

    我可能建议您将第二个表格插入第一个表格:

    insert into first
        select * from second;
    

    这允许您保留有关第一个表的辅助信息——例如主键定义、索引、触发器和外键关系。

    你可以做类似的事情:

    create table newtable like first;
    
    insert into newtable
        select * from first;
    
    insert into newstable
        select * from second;
    

    注意:通常我建议在使用insert 时使用列列表,但如果两个表确实具有完全相同的格式,那么这应该可以。

    还要注意,两个表中主键之间的冲突可能会导致这些方法失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多