Db2 联接三个表并将值更新到特定表

Db2 联接三个表并将值更新到特定表,db2,Db2,表a: ID RES_ID NAME -------------------- 1 3 (null) 2 1 (null) 3 3 (null) RES_ID AREA_NAME ------------------- 3 India 1 Japan 3 India

表a:

ID    RES_ID   NAME          
--------------------
1       3     (null)    
2       1     (null)    
3       3     (null) 
RES_ID    AREA_NAME          
-------------------
3           India        
1           Japan        
3           India        
ID    RES_ID   NAME          
--------------------
1       3     Delhi        
2       1     Tokyo    
3       3     Delhi          
表B:

ID    RES_ID   NAME          
--------------------
1       3     (null)    
2       1     (null)    
3       3     (null) 
RES_ID    AREA_NAME          
-------------------
3           India        
1           Japan        
3           India        
ID    RES_ID   NAME          
--------------------
1       3     Delhi        
2       1     Tokyo    
3       3     Delhi          
表C:

AREA_NAME    CITY_NAME          
-----------------------
India        Delhi        
Japan        Tokyo        
England      London
我想加入上述三个表,并使用DB2将TableC中的城市名称更新为TableA中的名称

请帮我整理一下

我已经尝试了下面的代码,但它不工作

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;
它显示错误消息。我希望输出如下所示

更新的表格a:

ID    RES_ID   NAME          
--------------------
1       3     (null)    
2       1     (null)    
3       3     (null) 
RES_ID    AREA_NAME          
-------------------
3           India        
1           Japan        
3           India        
ID    RES_ID   NAME          
--------------------
1       3     Delhi        
2       1     Tokyo    
3       3     Delhi          
提前谢谢

您可以尝试以下方法:

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
合并运算符用于在已删除记录存在时更新记录,否则插入该记录。但是您已经有了记录,只需要更新一个字段。因此,您需要一个更新查询

您可以尝试以下操作:

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

合并运算符用于在已删除记录存在时更新记录,否则插入该记录。但是您已经有了记录,只需要更新一个字段。因此,您需要一个更新查询

I字段中有更多重复值。我想知道是否应该使用DISTINCT?在tableC中有多条记录具有相同的区域名称?如果是这样,表_a.name将具有这些值中的任何一个。你无法预测哪一个。。。但是你不需要区分如果它起作用,接受答案,这样其他有同样问题的人可以使用它。我在字段中有更多重复的值。我想知道是否应该使用DISTINCT?在tableC中有多条记录具有相同的区域名称?如果是这样,表_a.name将具有这些值中的任何一个。你无法预测哪一个。。。但是你不需要区分,如果它有效,接受答案,这样其他有同样问题的人也可以使用它