更新另一个表中的值

时间:2019-10-15 17:44:43

标签: mysql

我有两个桌子。

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`
);

由于我先前的尝试删除了除正确更改一个值以外的所有其他值,请帮助我找到解决方案,并了解我已经做错了什么。另外,在使更改永久生效之前,最好的做法是查看要更改的内容?

0 个答案:

没有答案