现在有两个表a和b
a表中有ID和X两个字段,其中ID有值,X字段的值都是空的。
b表中有ID和V两个字段,这两个字段都有值现在想把b表中的V字段的值更新到a表的X字段中,要求b表中的ID与a表中的ID相等的才能更新X值。我写的语句如下:update b set X=
(select a.v 
from  a 
where a.id = b.id);请各位看一下我这样写的语句对不对。我在执行过程中,时间太长,过了半个小时还没有执行完。总共有20万数据。
如果我写的没有问题,各位帮忙给优化一下。谢谢。非常着急

解决方案 »

  1.   

    update a set X=
    (select b.v
    from  b
    where a.id = b.id)
      

  2.   

    不好意思,是我写错了。update a set X= 
    (select b.v 
    from  b 
    where a.id = b.id); 这个执行了半个多小时了,还没执行完。是什么问题?
      

  3.   

    -- TRY IT ..
    UPDATE A
       SET X = (SELECT B.V
                  FROM B
                 WHERE A.ID = B.ID)
     WHERE EXISTS (SELECT 1
                     FROM B
                    WHERE A.ID = B.ID);