我试图根据两个表中其他列的匹配,用第二个表中的值替换一个表中的空值。虽然代码不会导致错误,但它不会停止运行,从而产生无休止的“正在运行的查询”信号。代码在这里
更新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/