使用另一个 table 中某列的值更新 table 的某些特定项目中的一列

Update a a column in some specific items of a table, with values from a column in another table

我有 3 个 table。我想更新 table 1 中的所有 Image 行,使用 table 中的本地图像 3.

Table 1 与 table 2 按 ID 点赞。 Table 2 和 3 由 itemRef 链接。

作为我想要的示例:是来自 table 1 的 ID 1,获取图像 A。因为来自 table 1 的 ID,是 itemRef = 14 在 table 2,并且 itemRef = 14 in table 3 有图像 A.

╔════╦═══════╗
║ ID ║ Image ║
║ 1  ║       ║
║ 2  ║       ║
║ 3  ║       ║
║ 4  ║       ║
║ 5  ║       ║
║ 6  ║       ║
║ 7  ║       ║
║ 8  ║       ║
╚════╩═══════╝

╔════╦═════════╗
║ ID ║ ItemREF ║
║ 1  ║ 14      ║
║ 2  ║ 15      ║
║ 3  ║ 16      ║
║ 4  ║ 17      ║
║ 5  ║ 18      ║
║ 6  ║ 19      ║
║ 7  ║ 20      ║
║ 8  ║ 21      ║
╚════╩═════════╝



╔═════════╦═════════════╗
║ ItemREF ║ Local Image ║
║ 14      ║ A           ║
║ 15      ║ B           ║
║ 16      ║ C           ║
║ 17      ║ D           ║
║ 18      ║ E           ║
║ 19      ║ F           ║
║ 20      ║ G           ║
║ 21      ║ H           ║
╚═════════╩═════════════╝

这是我目前尝试过的方法:

update table1
set table1.image = table3.local_image
where table1.id in (select table3.local_image 
                    from table1, table2, table3
                    where table1.id = table2.id 
                      and table2.itemREF = table3.itemREF

你能帮我做这个吗?

UPDATE 语句中使用正确的连接,如下所示:

UPDATE table1 t1
INNER JOIN table2 t2 ON t2.id = t1.id
INNER JOIN table3 t3 ON t3.itemREF = t2.itemREF
SET t1.image = t3.local_image;