需要帮助来制定具有2个标准的更新声明

时间:2014-12-11 23:38:53

标签: sql sql-server join merge

我有3个表都已链接,但由于规划不当,数据和迁移从未完成。

我有3张桌子。

1. User
- It contains an email address and a PK of userID

2.Contact
-It contains a c_usedid , email address,roleid,systemcode and a field for d_userid and userid

3. contactuser
This is a linking table. It auto increments its PK (d_userid) and has userid (fk) and systemcode.

和我在一起。

我需要对联系人运行更新,该联系人填写d_userid,其中userid和systemcode都等于contactuser中的相同值。

有人有想法吗?我尝试了合并,但由于每个系统中可能有多行(多个角色!),因此不允许我执行代码。如果重要的话,我正在使用SQL Server 2012。

非常感谢帮助!

1 个答案:

答案 0 :(得分:1)

根据您的描述,这听起来像您想要的更新:

update c
    set d_userid = cu.d_userid
    from contact c join
         contactuser cu
         on c.userid = cu.userid and c.systemcode = cu.systemcode;