我们有2张桌子。
第一个表名为USER_CARD_MANAGEMENT
,有两列:card_ID
,User_ID
。
第二个表名为USER_MANAGEMENT
,有3列:user_ID
,USER_Name
,Domain
。
我们在第二个表中有一些记录,其中user_name与两个不同的域(根域,子域)重复。
我们需要替换user_ID
如果它属于子域以匹配user_ID
(根域),则从第二个表中删除子域的记录。
示例数据:
USER_CARD_MANAGEMENT
UserID CARd_id
1 5566889
6 6575900
11 5678809
26 4335679
USER_MANAGEMENT
UserID USER_NAME Domain
1 mike.smith child
2 mike.smith root
3 Dina.tom root
4 hala.viktor root
11 Nada.peter child
12 nada.peter root
如果我们在第二个表中有一个重复的user_name来匹配具有domain = root
的user_id,我只需要编辑第一列中的ID我们如何实现这一目标?
答案 0 :(得分:0)
假设您可以确定没有两个用户具有相同的名称,请尝试:
UPDATE ucm
SET User_Id = COALESCE(um2.User_id, um.User_id) FROM user_card_management ucm
JOIN user_management um ON ucm.user_id = um.user_id
LEFT JOIN user_management um2 ON um2.user_name = um.user_name
AND um.domain = 'child'
AND um2.domain = 'root'