现在A表里有字段aa,B表里有字段bb和bb1
现在我要把aa的内容更新成aa与B表里bb相等的bb1的值,数据库是oracle的,请问这个update语句怎么写,分全给出,跪求语句!

解决方案 »

  1.   

    update a set aa = (select bb1 from b where a.aa = b.bb);commit;
    aa、bb必须是主键
      

  2.   

    谢谢fenixshadow,问题已经解决,虽然用的不是你的语句,但是还是从你的语句里参考了很多东西。
    我的语句是这样的。
    create   table   a   
      (   
      a1   int,   
      a2   char(20)   
      );   
        
      insert   into   a   values(1,'111111111');   
      insert   into   a   values(2,'222222222');   
      insert   into   a   values(3,'333333333');   
      insert   into   a   values(5,'555555555');   
        
      create   table   b   
      (   
      b1   int,   
      b2   char(20)   
      );   
        
      insert   into   b   values(1,'aaaaaaaaa');   
      insert   into   b   values(2,'bbbbbbbbb');   
      insert   into   b   values(3,'ccccccccc');     
      insert   into   b   values(6,'eeeeeeeee');   
        
        
      select   *   from   a;   
        
            A1   A2   
      -----   ------------   
              1   111111111   
              2   222222222   
              3   333333333   
              5   555555555   
        
        select   *   from   b;   
        
              B1   B2   
      ------   ----------   
                1   aaaaaaaaa   
                2   bbbbbbbbb   
                3   ccccccccc   
                6   eeeeeeeee   
        
        Update   b   set   b2=(select   a2   from   a   where   a.a1=b.b1)   
        where   b1   in(select   a1   from   a,b   where   a.a1=b.b1)   
        
      select   *   from   b;   
        
            B1   B2   
      -----   -----------   
              1   111111111   
              2   222222222   
              3   333333333   
              6   eeeeeeeee