表A:
ID RES_ID NAME
--------------------
1 3 (null)
2 1 (null)
3 3 (null)
表B:
RES_ID AREA_NAME
-------------------
3 India
1 Japan
3 India
TableC:
AREA_NAME CITY_NAME
-----------------------
India Delhi
Japan Tokyo
England London
我想加入上述三个表,并使用 DB2 将TableC中的CITY_NAME更新为TableA中的NAME。
请帮我解决一下。
我已尝试过以下代码,但它无效。
MERGE INTO TableA A
USING TableB B, TableC C
ON A.RES_ID= B.RES_ID
AND B.AREA_NAME = C.AREA_NAME
WHEN MATCHED
THEN UPDATE SET A.NAME = C.CITY_NAME;
它显示错误消息。我想要输出如下,
更新了TableA:
ID RES_ID NAME
--------------------
1 3 Delhi
2 1 Tokyo
3 3 Delhi
提前致谢!
答案 0 :(得分:0)
你可以试试这个:
update A set name = c.name from tableA A
inner join tableB B ON A.RES_ID= B.RES_ID
inner join tableC C on B.AREA_NAME = C.AREA_NAME
MERGE运算符用于在存在disired记录时更新记录,否则插入记录。但是你已经有了记录,你只需要更新一个字段。因此,您需要更新查询