update A set (A.aa)=(nvl((select B.aa from B where B.aid=A.id ),A.aa))
update A set (A.aa)=((select B.aa from B where B.aid=A.id )) where exists(select 1 from b where B.aid =A.id)B表 可能是一个查询结果 求优化 谢了

解决方案 »

  1.   

    update A set aa=(select B.aa from B where B.aid=A.id ) 
    where exists(select 1 from b where B.aid =A.id)这个应该是很可以的了吧
      

  2.   


    --如果返回多条,你也没法更新啊,那却一条得了
    update A set (A.aa)=((select max(B.aa) from B where B.aid=A.id )) where exists(select 1 from b where B.aid =A.id)
      

  3.   


    UPDATE A SET AA=(SELECT B.AA FROM (SELECT ...FROM ...) B WHERE B.AID=A.AID)
    WHERE EXISTS(SELECT 1 FROM (SELECT ...FROM ...) B WHERE B.AID=A.AID)