用a表的val26这个字段更新b表的val1这个字段,表的行数是一样的,也就是对应行赋值。我这么写不行,update b set val1=(select val26 from a),请大家指点我,谢谢

解决方案 »

  1.   

    起码应该有 a.pk = b.pk 吧,不然怎么匹配记录呢
      

  2.   

    update b set val1 = (select val26 from a where a.pk_column = b.pk_column)
      

  3.   

    这要看实际情况,如果只更新部分数据,我通常这样做:
    update b set val1 = (select val26 from a where a.pk_column = b.pk_column)
    where b.pk_column in(select pk_column from a);速度确实会存在差别的.