2015-11-05 149 views
0

我想用一个查询更新MySQL中的两个表,并且正在运行到一个错误。我已经看过类似的情况和解决方案,但似乎无法将它们转换为我具体的查询/情况,因为我继续得到相同的错误。我的目标好像有一个明显的解决方案,我错过了。我的查询如下:MySQL更新多个表查询语法

UPDATE table_pr, table_pu 
INNER JOIN table_pu ON table_pr.id = table_pu.pr_id 
SET table_pr.cpr2 = table_pu.cpr2_id, table_pu.cpr_updated = '1' 
WHERE table_pu.cpr2_date < CURRENT_DATE() 

当我运行更新,我得到不是唯一的表/别名:“table_pu”返回。我更喜欢在这里不使用别名,但我也尝试为具有相同结果的表设置唯一的别名。如果我的做法应该被修改,我的终极目标是让table_pr.cpr2一套基于WHERE table_pu.cpr2_date < CURRENT_DATE()和更新是否运行table_pu.cpr2_id,还设置table_pu.cpr_updated = '1'

任何帮助或指导将不胜感激。

+1

尝试'UPDATE table_pr INNER JOIN table_pu ON'等。 –

回答

0

删除UPDATE语句中的第二个表引用解决了问题。