有A、B两个表。其中A、B表的sno列是相同的。现在就是想把A表中的class列值修改为B表中对应的class列值。
如:
表A
sno class
1 aa
2 bb
3 cc表B
sno class
2 dd
3 ff
1 ee结果:
sno class
1 ee
2 dd
3 ff不是用select哦,要用update直接修改A表。

解决方案 »

  1.   

    update a set a.class=b.class from b where a.sno=b.sno
      

  2.   

    update a 
    set a.class=b.class
    from a,b 
    where a.sno=b.sno
      

  3.   


    create table a (sno int,class varchar(10))
    insert into a 
    select 1,'aa' union all
    select 2,'bb' union all
    select 3,'cc' 
    gocreate table b(sno int,class varchar(10))
    insert into b
    select 2,'dd' union all
    select 3,'ff' union all
    select 1,'ee' 
    goupdate a set a.class=b.class from b where a.sno=b.snoselect * from a
    sno         class      
    ----------- ---------- 
    1           ee
    2           dd
    3           ff(所影响的行数为 3 行)
      

  4.   

    update a
    set class = b.class
    from a, b
    where a.sno = b.sno
      

  5.   

    ls正解,基于连接的update更新