我遇到以下问题。
我有一个包含以下字段的表(示例):
id, id2, id3, id4
由于错误,我不小心删除了id3
的所有值。 (它们现在是NULL
)。
我有第二个文件(备份),它有点旧,所以它的计数与损坏的表不同。 id3
就在那里。
我如何“连接”这些表,以至少恢复较大的部分?仅将 id3
从未损坏的表插入到损坏的表中?
我尝试过这个:
UPDATE table1 SET `id3` = SELECT `id3` FROM table2
就我而言,只有 phpMyAdmin 或 SQL 语法解决方案(无控制台)可以工作...
请帮忙!
最佳答案
如果我们假设一个、两个或三个 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;
关于MySQL 仅导入一列到现有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37374667/