MySQL只将一列导入现有表

时间:2016-05-22 12:58:20

标签: mysql

我有以下问题。

我有一个包含以下字段的表(示例):

id, id2, id3, id4

由于错误,我意外删除了id3的所有值。 (他们现在是NULL

我有一个较旧的第二个文件(备份),因此它与损坏的表没有相同的计数。那里有id3

如何“加入”这些表,至少恢复更大的部分?仅将id3从未损坏的表中插入损坏的表中?

我试过了:

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

在我的情况下,只有phpMyAdmin或SQL语法解决方案(没有控制台)才能工作......

请帮忙!

2 个答案:

答案 0 :(得分:1)

假设, particularly with an index on是唯一属性。

您只需运行此查询:

id

答案 1 :(得分: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;