我认为这应该很简单,但我是 SQL 新手。
我有两张 table 。一个是项目 ID 和描述的列表,另一个是对应的旧 ID 和新 ID 的映射。像这样:
ID_MAP
OLD_ID NEW_ID
---------------
1 101
2 102
ITEMS
ID DESCRIPTION
--------------------
1 "ItemA"
2 "ItemB"
...
101 <null>
102 <null>
我需要根据 map 将旧元素描述复制到新元素中。我想我需要在 update
中使用 inner join
,但它不起作用,我什至不确定这是正确的方法。
我正在尝试像这样的语句
update ITEMS
set (select ITEMS.DESCRIPTION
from ITEMS
join ID_MAP
on ITEMS.ID = ID_MAP.NEW_ID) =
(select ITEMS.DESCRIPTION
from ITEMS
join ID_MAP
on ITEMS.ID = ID_MAP.OLD_ID)
当然,它是行不通的。我应该做什么?
最佳答案
update new_item
set description = old_item.description
from items old_item
inner join id_map im
on old_item.id = im.old_id
inner join items new_item
on im.new_id = new_item.id
关于sql - 帮助进行简单的 SQL 更新 + 加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4186169/