我有两个桌子。
table1
Unit ID OldFile
123456 123456old.jpg
123457 123457old.jpg
table2
Search NewFile
123456 123456new.jpg
123457 123457new.jpg
我想用table2的新文件名替换table1的旧文件名。并非table1中的每一行都会有来自table2的新值,这些行应保持不变。
好吧,使用以下命令,我设法更新了table1中的正确值,但是,它也将该列的每隔一行更改为空白。我只用了table2中的1行来尝试了这一点
UPDATE database.`table1` t1
SET t1.`OldFile` =
(SELECT t2.NewFile FROM database.table2 t2 WHERE t1.`Unit ID` = t2.SEARCH)
这样的东西会更好吗?
UPDATE database.table1
SET table1.OldFile = (
SELECT table2.newFile
FROM database.table2
WHERE table2.search = table1.`Unit ID`
);
由于我先前的尝试删除了除正确更改一个值以外的所有其他值,请帮助我找到解决方案,并了解我已经做错了什么。另外,在使更改永久生效之前,最好的做法是查看要更改的内容?