oracle数据库要updateA表的数据,条件是A表的a字段等于B表的a字段,请教此update语句如何写。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数据库要updateA表的数据,条件是A表的a字段等于B表的a字段,请教此update语句如何写。相关的知识,希望对你有一定的参考价值。

A表的a字段等于B表的a字段,这2个字段是关联关系

参考技术A 您好,以下为思路与语法:
1 > update A a set a.column = 更新值 where a.a in (select a from b);
2> update A a set a.column = 更新值 where exists (SELECT 1 FROM B b WHERE 1=1 a.id = b.id) <推荐。性能高于思路①>本回答被提问者和网友采纳
参考技术B 你是想拿B表中的数据更新A表还是仅仅是说A.a=B.a的时候将A表的数据修改 参考技术C update a set a.column=??? where a.a in (select a from b);

oracle查询优化之子查询条件优化

  环境:oracle 11g

  现有a表与b表通过a01字段关联,要查询出a表的数据在b表没有数据的数据;sql如下

select count(1) from (select a.*,(select count(1)  from b where b.a01=a.a01) as flag from a) where flag=0

  因为flag是虚拟字段没有走不了索引导致这条sql执行起来特别慢 310W条数据查总数花费2秒左右。

  利用not exists优化sql如下

select count(1) from a where not exists(select 1 from b where a.a01=b.b01)

  利用not exists走索引,执行花费时间大约为0.2秒

以上是关于oracle数据库要updateA表的数据,条件是A表的a字段等于B表的a字段,请教此update语句如何写。的主要内容,如果未能解决你的问题,请参考以下文章

更新一个表的字段值等于另一个表的字段值的SQL语句要怎么写?

oracle当表A1,数据发生update时,将字段time更新为当前时间

oracle怎么用一个表的多个字段数据更新另一个表相应的字段中

两个表,根据条件批量更新其中一个表的某一列数据。(高分求救,在线等待。)

更新一个表的字段值等于另一个表的字段值的SQL语句

求助Oracle大表查询优化