Update AAA.master A, BBB.images B, BBB.content C
set A.caption = B.image_txt where C.content_id_key = A.media_id
我收到以下错误,但我确定它们都是主键。他们必须有PK-> FK关系吗?我不这么认为。 您正在使用安全更新模式,并且您尝试更新没有使用KEY列的WHERE的表
由于
答案 0 :(得分:1)
解决方案出错了。
但首先你需要重写你的查询 在我之后重复:
我不能使用隐式
where
联接,因为它们令人困惑!
将更新查询重写为:
Update AAA.master a
INNER JOIN BBB.images b ON (a.someid = b.someid) #<<-- your error is here
INNER JOIN BBB.content c ON (C.content_id_key = A.media_id)
SET A.caption = B.image_txt WHERE ........ #<<-- and also here
你做的第一个错误是表A和B之间没有连接标准。
第二个错误是在严格模式下你需要有一个where
条款
并且你没有 我做了 没有你没有有一个where子句,你只是有一个加入标准伪装作为where子句。
此外,你仍然是一个短暂的加入标准和真正的where子句短。
这就是隐式连接糟透了的原因
答案 1 :(得分:0)
可能是因为您没有从WHERE部分中的表B中选择记录