update a
   set a.addr1 =
       (select c.addr2
          from b, c
         where a.id01 = b.id01
           and b.id = c.id);

解决方案 »

  1.   


    update a
       set a.addr1 =   (select c.addr2     from b, c   where a.id01 = b.id01  and b.id = c.id)
    where exitsts(select * from b, c   where a.id01 = b.id01  and b.id = c.id)
      

  2.   

    1楼的做法是对的。建议楼主按照1楼的做法把表b和表c关联后的结果作为表来保存起来,建立个id001的索引,这样更新时走索引就行了。
      

  3.   

    还是建议LZ把 where exists () 条件加上。