帮助简单的SQL更新+加入

Ste*_*ell 2 sql

我认为这应该很简单,但我是一个SQL新手.

我有两张桌子.一个是项目ID和描述的列表,另一个是相应的旧ID和新ID的映射.像这样:

    ID_MAP
OLD_ID   NEW_ID
---------------
1        101
2        102

    ITEMS
ID       DESCRIPTION
--------------------
1        "ItemA"
2        "ItemB"
...
101      <null>
102      <null>
Run Code Online (Sandbox Code Playgroud)

我需要根据地图将旧项目描述复制到新项目.我想我需要使用一个inner join内部update,但它不起作用,我甚至不确定这是正确的方法.

我正在尝试这样的陈述

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)
Run Code Online (Sandbox Code Playgroud)

但当然它不起作用.我该怎么办?

Joe*_*lli 5

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
Run Code Online (Sandbox Code Playgroud)