2014-09-19 50 views
2

我每天都会转储某个数据库。我想要做的是将来自数据库不同转储的特定表记录合并到一个表中。例如,如果我有表X为第1天,表X为第2天,这两个表基本上是重叠记录相同的事情。我只想得到一个表X,其中两个表的数据相结合。该表有一个名为'id'的主键。结合MySQL数据库

表X天1

id field1 field2 
1 0  0 
2 1  2 

表X日2

id field1 field2 
1 0  0 
3 1  3 

我需要什么:

表X

id field1 field2 
1 0  0 
2 1  2 
3 1  3 

什么是做的最好的方法它?是否有可能在MySQL本身做到这一点,或者我需要一个代码来处理它?

请注意:此表x存在于不同的数据库中。基本上我会在MySQL中导入这些每日转储,并且每天都会提供一个独特的数据库。

感谢

+0

我不明白你想要什么。你的意思是说你想在新的mysql模式中合并转储?并且该表应该自动获取新名称? – 2014-09-19 15:52:28

+0

@HolaSoyEduFelizNavidad基本上,我在10天内从一个数据库中获得了10个转储。这个数据库中有一张随时间变化的表格。我想要做的就是从这10天内获得该表的记录,并将它们合并到新数据库中的一个表中。谢谢 – ahajib 2014-09-19 17:56:37

+0

仅仅是你转储这张表还是整个数据库?您可以在加载转储之前调用脚本? – 2014-09-21 17:10:42

回答

0

首先,你需要找到它给你你想要的,下一步就是你可以创建一个视图像create view tablex as用于创建一个表create table tablex as select ....结果查询。 对于你的情况下,你必须使用union子句的结果结合起来:

Select id, field1, field2 from table1 
union 
Select id, field2, field2 from table2 
0
INSERT INTO Tablex (id, field1, field2) VALUES 
SELECT id, field1, field2 
FROM someOtherTable 
UNION 
SELECT id, field1, field2 
FROM anotherTable 

入住这里mySQL query: How to insert with UNION?