2016-05-22 80 views
0

我有以下問題。MySQL只導入一列到現有表

我有一個包含以下字段(例如)表:

id, id2, id3, id4 

由於一個錯誤,我已經無意中刪除的id3所有值。 (現在他們是NULL)。

我有第二個文件(備份),它有點舊,所以它沒有與損壞的表相同的計數。那裏有id3

如何「加入」這些表格,以恢復至少較大的部分?僅將id3插入到未損壞的表格中的損壞的表格中?

我嘗試這樣做:

UPDATE table1 SET `id3` = SELECT `id3` FROM table2 

在我的情況下,只有phpMyAdmin的或SQL語法溶液(無控制檯)會工作......

請幫幫忙!

回答

0

如果我們假設,一個,兩個或三個ID的定義每一行,那麼你可以使用join

update table1 t1 join 
     table2 t2 
     on t1.id = t2.id 
    set t1.id3 = t2.id3; 

這假定id是兩個表中是唯一的。您可能想要使用更復雜的表達式:

update table1 t1 join 
     table2 t2 
     on t1.id = t2.id and t1.id2 = t2.id2 and t1.id4 = t2.id4 
    set t1.id3 = t2.id3; 
1

假設id是一個獨特的屬性。

你可以簡單地運行此查詢:

UPDATE table1 SET id3 = (SELECT id3 FROM table2 WHERE table2.id = table1.id)