如何通过连接两个单独的表来更新临时表列?
我有这样的东西-
UPDATE t
SET t.ContactCode = PC.Code
FROM @tempUsers t,
Users U LEFT JOIN PhoneCodes PC ON U.ContactCodeId = PC.PhoneCodes_Id
这里,@tempUsers是我的临时表,Phone Codes和Users是两个不同的表。
运行时没有语法错误,但是列值都显示为null,这是不正确的。我不确定我在查询中做错了什么。
您需要在@tempUsers和users表之间有一个连接列来更新@tempUsers(其中t.t userid= u.d).
update @tempUsers
set t.ContactCode = PC.Code
from Users U
LEFT JOIN PhoneCodes PC
ON U.ContactCodeId = PC.PhoneCodes_Id
where @tempUsers.userid=u.id
如果您将这三个表的结构与一些示例数据一起共享会更好。
您应该使用适当的join,然后您会发现您没有定义连接表Users的条件。
你在找这样的东西:
UPDATE T SET T.ContactCode = PC.Code
FROM @tempUsers T
INNER JOIN Users U ON U.Code = T.UserCode
LEFT JOIN PhoneCodes PC ON PC.PhoneCodes_Id = U.ContactCodeId