我试图根据两个表中其他列的匹配,用第二个表中的值替换一个表中的空值。虽然代码不会导致错误,但它不会停止运行,从而产生无休止的“正在运行的查询”信号。代码在这里
    更新pl_building b
    内联接pl_grt
    开b.INST = t.inst
    SET b.Utuition = t.tuition
    其中b.UtUITION = 0;

最佳答案

您不应该更新联接表。

我不确定要更新哪个字段,但是您的SQL应该如下所示:

UPDATE pl_building b
SET b.Utuition= (select t.tuition from  pl_grt t ON b.INST = t.inst)
WHERE b.UtUITION = 0;


确保 :

1)您在t.inst表列上有一个索引,也许在b.UtUITION上也有

2)b.INST = t.inst之间的关系是唯一的。永远不会返回超过1行。

关于mysql - 尝试使用第二个表MySQL中的值更新表会导致无休止的“运行查询”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30468702/

10-12 02:51