我知道这里有类似的帖子,但是我还没有找到适合我的问题的帖子。
在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)
而父母的氧化物则绑定到孩子/变体的列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