在网上看到这么一个方法:
update
    (select A.bnum ,A.newqiantity,B.qiantity from A left join B on A.bnum=B.bnum) AS C
set C.newqiantity = C.qiantity
where C.bnum =XX 我试着 update (select j.name,c.ph
          from jbb j
          left join jcb c on j.woman = c.woman) AS c
   set c.name = 'test'
 where c.ph>100为什么总提示 " MISSING SET KEYWORD"
-------------
我试着用这种更新方法就是。。奇怪他能用构造一个虚表。然后更新虚表的某个字段。就会相应更掉组成虚表的实表字段吗达人解释....

解决方案 »

  1.   

    试试
    update
      (select A.newqiantity ne,B.qiantity  qi from A left join B on A.bnum=B.bnum and      a.bnum =XX  ) 
    set ne= qi
      

  2.   

    (select j.name,c.ph
      from jbb j
      left join jcb c on j.woman = c.woman) AS c
    这里有问题.
      

  3.   

    把as去掉update
    (select employee_id,last_name from employees where employee_id = 100) C
    set c.last_name = 'KK'
      

  4.   


    单表更新应该没问题,但是多表关联的时候这样更新能成功吗?我怎么执行都报错。
    ora-01779:cannot modify  a column which maps non key-preserved table