如何通过连接两个独立的表来更新临时表的列?



如何通过连接两个单独的表来更新临时表列?

我有这样的东西-

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

最新更新