使用另一个 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;
我有 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;