我有这个查询,由于记录数多,所以要花几个小时,我想知道是否有一种方法可以改善它:
update tableA target
inner join
( select b.columnZero, b.columnOne, b.columnTwo from tableB b
inner join tableA a ON b.columnZero = a.columnZero
) as source
on target.columnZero = source.columnZero
set
target.columnOne = source.columnOne,
target.columnTwo = source.columnTwo;
编辑:
columnZero
是tableB
中的主键,但不是tableA
中的主键。在tableA
中,我有一个与上述列不同的主键。有什么建议么?
最佳答案
在我看来,您正在执行两次相同的联接(否则我不理解您的查询)。关于什么:
update tableA a
inner join tableB b on a.columnZero = b.columnZero
set
a.columnOne = b.columnOne,
a.columnTwo = b.columnTwo;
关于mysql - 具有内部联接的SQL更新查询:更改以缩短执行时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11310137/