我有一个表让我们称之为table1,并且两个列中的数据已被销毁.
幸运的是,我有一个旧表的备份.
在旧备份中,有问题的两列的值是正确的,但其余列已过时,因此我不能简单地导入整个转储.
所以我把它导入另一个我称之为table2的表中.每个记录的id都与两个表中的id相同.
所以基本上我需要一个查询,它将遍历table1中的每个记录,并使用table2中的相应值更新column1和column2.
nik*_*trs 46
原始表是table1,备份表是table2
UPDATE table1 t1 JOIN table2 t2 ON t1.id = t2.id
SET t1.col1 = t2.col1, t1.col2 = t2.col2, ...
Run Code Online (Sandbox Code Playgroud)
Boh*_*ian 18
这将适用于所有类型的SQL数据库:
update table1 t set
column1 = (select column1 from old_table where id = t.id),
column2 = (select column2 from old_table where id = t.id);
Run Code Online (Sandbox Code Playgroud)
不需要任何特殊/聚合函数,因为id匹配将恰好命中一行.