表A
字段: staffid    staffname
      001        xxx
      002        bbbbb现在有一张对应表B
字段: staffid_旧值    staffid_新值
      001             vvv
      002             ZZZ这两张表都是100万条数据的表
请问如何通过高效率的sql实现以下功能:结果为: 表A
字段: staffid    staffname
      vvv        xxx
      ZZZ        bbbbb表A的staffid和表B的staffid_旧值是关联的.

解决方案 »

  1.   

    update 表A set staffid=(select staffid_新值 from 表B where staffid_旧值=表A.staffid)
      

  2.   

    update (select staffid,staffid_新值 from 表B,表A where staffid_旧值=表A.staffid) set staffid=staffid_新值
      

  3.   

    bobfang(匆匆过客) 的方案应该会好一些!不过要硬件和环境高些。至于另外一位的,我觉得也不错,至少比较通俗的做法,比较适应各种环境。
      

  4.   

    select staffid_新值 as staffid,staffname from 表B,表A where staffid_旧值=表A.staffid