2014-09-19 57 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?