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关系?我不这么认为。 您正在使用安全更新模式,你试过没有一个WHERE使用键列更新表密钥上的Mysql更新错误
感谢
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关系?我不这么认为。 您正在使用安全更新模式,你试过没有一个WHERE使用键列更新表密钥上的Mysql更新错误
感谢
的解决方案是在该错误。
但首先,你需要重写查询。之后我
重复:
我不能使用隐
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子句短。
这就是为什么隐含加入吸如此糟糕
这可能是因为你没有从该表B中选择记录WHERE部分
不,我想that.I即使只有2台试了一下。我阅读关于关闭安全更新,但我不想。它几乎像它没有看到我的where子句。 – mike628 2011-06-02 19:16:47