我知道这里有类似的帖子,但我还没有找到适合我的问题的帖子。
在 MySQL 表 oxarticles 中,我有从外部程序导入的文章。该程序将每篇文章作为父文章和变体发送两次,其中一些列包含附加数据。
我想标准化表格,将附加列数据写入父文章中。
我的更新查询如下所示:
UPDATE oxarticles
SET oxean = (SELECT oxean FROM oxarticles WHERE oxparentid = oxid),
oxstock = (SELECT oxstock FROM oxarticles WHERE oxparentid = oxid),
oxinsert = (SELECT oxinsert FROM oxarticles WHERE oxparentid = oxid)
而父代 ox 则绑定(bind)到子代/变体的 oxparentid 列。
不幸的是我收到错误:
Your can’t specify target table for update in FROM clause
请问我该如何解决这个问题?
最佳答案
你可以这样做:
UPDATE oxarticles a
LEFT JOIN oxarticles b ON a.oxid=b.oxparentid
SET a.oxean =b.oxean,
a.oxstock =b.oxstock ,
a.oxinsert =b.oxinsert
关于MySQL无法在FROM子句中指定更新目标表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27035154/