SQL中如何从两张表中创建一张表
Posted
技术标签:
【中文标题】SQL中如何从两张表中创建一张表【英文标题】:How to make one table from two tables in SQL 【发布时间】:2015-01-05 04:32:53 【问题描述】:我在 mysql 中有两个表,我想将它们组合成一个大表。两个表具有完全相同的列(主索引id
列和snippet
列,它是一个字符串),但具有不同的数据。它们是从不同的 .csv 文件加载的,因为当不拆分文件时,文件太大而无法一次性上传到 phpMyAdmin。
现在,我想将这两个表合并为一个。
到目前为止,我在 *** 上找到的所有问题都是关于想要合并两个表的结果。
例如:将一些数据从一个表映射到另一个表。但我想物理合并这两个表,以便将它们存储为一个 SQL 表。
如何做到这一点?
【问题讨论】:
【参考方案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
时使用列列表,但如果两个表确实具有完全相同的格式,那么这应该可以。
还要注意,两个表中主键之间的冲突可能会导致这些方法失败。
【讨论】:
以上是关于SQL中如何从两张表中创建一张表的主要内容,如果未能解决你的问题,请参考以下文章