这种形式  update a set a.xxx = (select b.eee from b where a.bid = b.id)

解决方案 »

  1.   

    oracle中 set前面只能存在一个表  后面也不能跟from 逻辑在子查询中处理
      

  2.   

     Update emp
      Set(sal,comm) = (select sal,comm. From emp1 where emp.empno = emp1.empno)
    找到方法了.这样可以
      

  3.   

    嗯  oracle里面都是连续的方式操作的 和into赋值差不多模式 
      

  4.   


    左右关联在oracle里面用+号
    update a set a.xxx=b.eee
    from a,b where a.bid(+)=b.id
      

  5.   

    update a set a.xxx=(select b.eee
    from a,b where a.bid(+)=b.id)
      

  6.   

    不过感觉这样比sql里面慢很多
      

  7.   

    merge into a 
    using b
    on (a.a=b.b)
    when matched then update set xxxxx
    when not matched then insert (xxx) values(xxx);又找到个方法,这样也可以
      

  8.   


      那是   看你会不会用merge 了   一般人用的不多  但是用处也蛮大的  但是效率还是没第一种好
      

  9.   

    楼主的写法是SQL Server的写法啊
      

  10.   


    merge into a 
    using b
    on (a.a=b.b)
    when matched then update set xxxxx
    when not matched then insert (xxx) values(xxx);
    这个个人感觉更好一些