条件1:
user_id money 
1001    217 
1002    500 
1003    425 
条件2:
user_id money 
1001    aaa 
1002    500 
1003    bb 
目标:(就是条件2将条件1相同user_id的money替换掉)
user_id money 
1001 aaa 
1002 500 
1003 bb很急!!!!

解决方案 »

  1.   

    update 条件1 a set money = (select b.money from 条件2 b where  b.user_id = a.user_id and rownum=1) where 
    a.user_id in(select user_id from 条件2)
      

  2.   

    update 条件1 
    set money = (select money from 条件2 where 条件2.user_id = 条件1.user_id)
    where 条件1.user_id in (select user_id from 条件2)
      

  3.   

    批量更新你可以用merge into,参考:merge into
    相同表结构的表关联表更新,你也可以参考:
    oracle 更新相同表问题
      

  4.   

    create table t1(user_id varchar2(50), money varchar2(50));
    create table t2(user_id varchar2(50), money varchar2(50));
    insert into t1 values ('1001','217');
    insert into t1 values ('1002','500');
    insert into t1 values ('1003','425');
    insert into t2 values ('1001','aaa');
    insert into t2 values ('1002','500');
    insert into t2 values ('1003','bb');merge into t1 using t2 on
    (t1.user_id=t2.user_id)
    when matched then
    update set money=t2.money;
     
    select * from t1
    user_id money
    1001 aaa
    1002 500
    1003 bb
      

  5.   

    update 条件1  
    set money = (select money from 条件2 where 条件2.user_id = 条件1.user_id)
    where 条件1.user_id in (select user_id from 条件2)