关于sqlserver某个字段的update更新操作

表table1中有两个字段(user_id,telephone)user_id为主键;表table2中其中两个字段(joid_id,telephone),join_id是... 表table1中有两个字段(user_id, telephone) user_id为主键;
表table2中其中两个字段(joid_id,telephone),join_id是跟table1中的user_id关联,table2中可能存在重复的数据;我现在要批量更新table2中的telephone字段,将table2中的telephone更新为joid_id等于table1中的user_id的telephone,求例如下:

table1
user_id telephone
1 123456
2 456789
table2
joid_id telephone
1 758495
1 758495
2 845621
更新后的结果为
table1
user_id telephone
1 123456
2 456789
table2
joid_id telephone
1 123456
1 123456
2 456789
求给出sql语句
展开
 我来答
yuanwei64
2013-05-27 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:136万
展开全部
update a set a.telephone=b.telephone

from table2 a
inner join table1 b on a.joid_id=b.user_id

或者
update table2
set telephone=a.telephone
from table1 a
WHERE table2.joid_id=a.user_id

两种方式都可以
追问
恩,我是想到了用merge来操作,也是可以的,merge into table2 t using 
(select user_id,telephone from table1) b
on t.user_id = b.joid_id
when matched then
update set t.telephone = b.telephone
追答
嗯 实现方式很多,你可以用查询分析器分析下哪个效率高用哪个了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友30f452c
2013-05-27 · 超过30用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:86.2万
展开全部
update table2
set table2.telephone = table1.telephone
from table1, table2
where table2.joid_id = table1.[user_id]

user_id与关键字相同了,要用[]包起来,本地测试通过。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
情又独中
2013-05-27 · TA获得超过1032个赞
知道小有建树答主
回答量:1220
采纳率:100%
帮助的人:832万
展开全部
update table2 t2 set telephone=(select t1.telephone from table1 t1 where t1.user_id=t2.joid_id)
更多追问追答
追问
一看就知道是错误的,后面的子查询显然是个多数据集合,怎么跟前面的telephone对应更新
追答
你说表2有重复数据,表1又没有,怎么会是多数据?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
c6iz
2013-05-27 · TA获得超过1417个赞
知道大有可为答主
回答量:1426
采纳率:100%
帮助的人:1048万
展开全部
update table2
set telephone=a.telephone

from table1 a
WHERE table2.joid_id=a.user_id
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式