Mysql 如何使用内部联接更新表1,其中条件和限制

Mysql 如何使用内部联接更新表1,其中条件和限制,mysql,join,Mysql,Join,这是我的查询,我想根据与table2列值匹配的结果更新table1字段 我想申请更新查询的条件是: 其中table1.1字段为空 限制/前1000条记录 我用来执行此操作的查询是 update table1 t1 set t1.BaseAcqId = ( select t2.BaseAcqId from table2 t2 inner join t1 on t1.DateTime=t2.DateTime where t1.BaseAcqId is null limi

这是我的查询,我想根据与table2列值匹配的结果更新table1字段

我想申请更新查询的条件是:

  • 其中table1.1字段为空
  • 限制/前1000条记录
  • 我用来执行此操作的查询是

    update table1 t1
    set t1.BaseAcqId =
       (
        select t2.BaseAcqId from table2 t2
        inner join t1 on t1.DateTime=t2.DateTime
        where t1.BaseAcqId is null limit 100
      );
    
    错误:

  • 更新时使用限制错误
  • 如果取消限制,性能会变慢
  • 两个表中的记录总数均为3000万条

  • 您是否在外键上添加了索引?是的。我已经在外键和主键上添加了索引。有什么方法可以将limit与内部联接和更新一起使用吗?您可以将有限的结果插入临时表,并根据该表进行联接。不再是单个查询,但可以完成任务。是否在外键上添加了索引?是的。我已经在外键和主键上添加了索引。有什么方法可以将limit与内部联接和更新一起使用吗?您可以将有限的结果插入临时表,并根据该表进行联接。不再是单个查询,而是可以完成任务。