sql如何在子查询里引用父语句的属性,比如说现在想更新一张表,但是要根据这张表的主键查询另外一种表
updatet1sett1.name=(selectnamefromt2wheret2.id=t1.id);这样写好像不对,大家给点拨一下吧...
update t1 set t1.name=(select name from t2 where t2.id=t1.id); 这样写好像不对,大家给点拨一下吧
展开
3个回答
展开全部
update t1 set t1.name=(select name from t2 where id=t1.id)这样写没错 但有一个前提 ,那就是t1表中的id和name是一对一的关系,否则就会报错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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)
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)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个语句可以,不过要保证t2.name的值查询出来是唯一的,不然会报错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询