多表连接update 的其他方法

nicky1605 2010-01-12 12:29:18
我这个表结构是这样的,ChargeItemAlias和ChargeItem表里面都有唯一的UniCode并且相同,想要把符合UniCode相同键值的ItemName字段更新到Alias字段里面,开始是用嵌套怎么搞也不对。后来找个另外一个思路,请问大家能不能用嵌套解决这个问题?我实验了很多方法都不行

update ChargeItemAlias set ChargeItemAlias .Alias=ChargeItem.ItemName From ChargeItemAlias inner join ChargeItem on ChargeItemAlias.UniCode=ChargeItem.UniCode


...全文
59 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2010-01-12
  • 打赏
  • 举报
回复
1.
update ChargeItemAlias
set Alias = n.ItemName
From ChargeItemAlias m , ChargeItem n
where m.UniCode = n.UniCode

2.
update ChargeItemAlias
set Alias = isnull((select ItemName from ChargeItem where UniCode = m.UniCode),m.Alias)
From ChargeItemAlias m

不过,建议用第一种方法.


SQL77 2010-01-12
  • 打赏
  • 举报
回复
[UniCode]


这个最好用[]分界
SQL77 2010-01-12
  • 打赏
  • 举报
回复

update
ChargeItemAlias
set ChargeItemAlias .Alias=ChargeItem.ItemName
From
ChargeItemAlias inner join ChargeItem on ChargeItemAlias.UniCode=ChargeItem.UniCode


连接查询效率要好点,数据量大的话,
嵌套效率不太好,

update 
ChargeItemAlias
set ChargeItemAlias .Alias=
(SELECT ChargeItem.ItemName FROM ChargeItem WHERE ChargeItemAlias.UniCode=ChargeItem.UniCode)
From ChargeItemAlias

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧