sql如何在子查询里引用父语句的属性,比如说现在想更新一张表,但是要根据这张表的主键查询另外一种表

updatet1sett1.name=(selectnamefromt2wheret2.id=t1.id);这样写好像不对,大家给点拨一下吧... update t1 set t1.name=(select name from t2 where t2.id=t1.id); 这样写好像不对,大家给点拨一下吧 展开
 我来答
yangliwei100
2013-03-29 · TA获得超过2258个赞
知道小有建树答主
回答量:2216
采纳率:50%
帮助的人:725万
展开全部
update t1 set t1.name=(select name from t2 where id=t1.id)这样写没错 但有一个前提 ,那就是t1表中的id和name是一对一的关系,否则就会报错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bwcui
2013-03-29 · TA获得超过188个赞
知道小有建树答主
回答量:149
采纳率:0%
帮助的人:118万
展开全部
mysql:
update t1 set t1.name=(select name from t2 where t2.id=t1.id limit 0,1)

ms sql server:
update t1 set t1.name=(select top 1 name from t2 where t2.id=t1.id)

oracle:
update t1 set t1.name=(select name from t2 where t2.id=t1.id and rownum<=1)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-03-29 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5166万
展开全部
你这个语句可以,不过要保证t2.name的值查询出来是唯一的,不然会报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式