现在有两个表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万数据。
如果我写的没有问题,各位帮忙给优化一下。谢谢。非常着急
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万数据。
如果我写的没有问题,各位帮忙给优化一下。谢谢。非常着急
(select b.v
from b
where a.id = b.id)
(select b.v
from b
where a.id = b.id); 这个执行了半个多小时了,还没执行完。是什么问题?
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);