MySQL从一个表到另一个表进行一对多更新

MySQL从一个表到另一个表进行一对多更新,mysql,inner-join,updates,Mysql,Inner Join,Updates,我有带有accountNum和emailAddr(每个帐号一个条目)的表1和带有相同两个字段但可以有多个字段(具有相同帐号的多个记录)的表2。我想更新表1中的表2电子邮件地址。我试过这个,但它只是挂了起来,什么也没做: update table2 inner join table1 on t1acct = t2acct set t2email = t1email where t2status = "A"; 请帮忙。提前感谢。假设列名正确,查询应该可以工作(请参阅此提琴的演示:)是查询超时

我有带有accountNum和emailAddr(每个帐号一个条目)的表1和带有相同两个字段但可以有多个字段(具有相同帐号的多个记录)的表2。我想更新表1中的表2电子邮件地址。我试过这个,但它只是挂了起来,什么也没做:

update table2 
inner join table1 on t1acct = t2acct 
set t2email = t1email 
where t2status = "A";

请帮忙。提前感谢。

假设列名正确,查询应该可以工作(请参阅此提琴的演示:)是查询超时,还是查询已完成但没有任何作用?查询只运行了一段时间。。。我让它走了5分钟,它中止了。。。然后检查,没有设置电子邮件。表1中有3750条记录,表2中有5900条记录可能是一个锁定问题,该查询应该是有效的。此外,它还锁定了MySQL,因此在运行上述查询时无法运行其他查询。我从未见过这种情况发生。请考虑用表名或表别名对列引用进行限定。我们实际上只是猜测列
t1acct
t2acct
t2email
t1email
t2status
引用的是哪个表。(我们没有模式定义;我们可以猜测,但我们的猜测可能是错误的。)并且有适当的可用索引应该有助于提高性能。例如,我们再次猜测是否有一个以
t2acct
为前导列的索引。“使用解释,卢克。”