Oracle相关,更新语句中应用子查询,子查询的条件为什么会同时作用到更新操作?
updatetest1t1set(v2,v3)=(selectv3,v2fromtest3t3wheret1.v1=t3.v1)whereexists(select1fr...
update test1 t1
set (v2,v3) =
(select v3,v2 from test3 t3 where t1.v1 = t3.v1)
where exists(select 1 from test3 t3 where t1.v1 = t3.v1)
update test1 t1
set (v2,v3) =
(select v3,v2 from test3 t3 where t1.v1 = t3.v1)
update test1 t1
set (v2,v3) =
(select v3,v2 from test3 t3)
以上三个sql的区别 展开
set (v2,v3) =
(select v3,v2 from test3 t3 where t1.v1 = t3.v1)
where exists(select 1 from test3 t3 where t1.v1 = t3.v1)
update test1 t1
set (v2,v3) =
(select v3,v2 from test3 t3 where t1.v1 = t3.v1)
update test1 t1
set (v2,v3) =
(select v3,v2 from test3 t3)
以上三个sql的区别 展开
推荐于2017-07-19
展开全部
第一句写的最完整,加了存在性限定条件,更新操作时会先去找限定条件,在执行更新操作;第二句没有where限定条件,则用子查询的关联表结果集全部进行更新操作;第三句没有关联查询,则用test3表全部结果集进行更新test1
追问
第三个sql是会报错的,而第二个却不会,为什么?毕竟第二个也是返回多个值的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询