我这里有两张表,一张是A,一张是B 
A的结构如下:
gljg_dm,mc,price,address
B表结构如下:
gljg_dm,address其中A表有10W数据,B表1000数据,要做的是:将B表中的Address更新到A表的Address中,通过gljg_dm关联,这个该如何写呢?

解决方案 »

  1.   

    update tablea a set a.address=(select b.address from tableb where a.gljg_dm=b.gljg_dm and rownum=1)
    where exists(select 1 from tableb c where a.gljg_dm=c.gljg_dm);
      

  2.   

    update tablea a set a.address=(select b.address from tableb b where a.gljg_dm=b.gljg_dm and rownum=1)
    where exists(select 1 from tableb c where a.gljg_dm=c.gljg_dm);
      

  3.   

    update tablea a set a.address=(select b.address from tableb where a.gljg_dm=b.gljg_dm and rownum=1)
    where exists(select 1 from tableb c where a.gljg_dm=c.gljg_dm);更新不都是这样写的吗?新手呵呵
      

  4.   

    我新手,问一下只要update tablea a set a.address=(select b.address from tableb b where a.gljg_dm=b.gljg_dm)行不行啊?后面写的怎么理解啊?请指点。
      

  5.   

    我平常写到:update tablea a set a.address=(select b.address from tableb b where a.gljg_dm=b.gljg_dm),没有后面的那些,有影响吗?
      

  6.   


    update a set a.address(=select address from b where a.gljg_dm=b.gljg_dm and rownum=1)
    where exists(select 1 from b where a.gljg_dm=b.gljg_dm)
    --or(9i 以上  推荐)merge into a using b on(a.gljg_dm=b.gljg_dm)
    when matched then
    update set a.address=b.address
      

  7.   


    有 要是没有匹配 的 会被更新为null
      

  8.   


    update a set a.address(=select address from b where a.gljg_dm=b.gljg_dm and rownum=1)
    where exists(select 1 from b where a.gljg_dm=b.gljg_dm)
    --or(9i 以上  推荐)merge into a using b on(a.gljg_dm=b.gljg_dm)
    when matched then
    update set a.address=b.address