MYSQL在同一表上设置更新

uqdfh47h  于 2023-01-04  发布在  Mysql
关注(0)|答案(1)|浏览(118)

我有下面的mysql查询,试图更新一个帐户(139)的标识符的所有者,该帐户的标识符的所有者与已经存在于同一个表中的任何其他帐户的标识符的所有者相同,如下所示:

update portfolio_identifier
SET owner_id = owner_id
where
account_id = 139
and code in(select code from portfolio_identifier where portfolio_identifier.account_id <> 139);

但是,我的查询不工作,因为我得到以下错误:
错误代码:1093。不能在FROM子句中指定要更新的目标表'portfolio_identifier'
如果可能的话,该怎么做呢?谢谢

hzbexzde

hzbexzde1#

我们可以在这里使用更新联接:

UPDATE portfolio_identifier p1
INNER JOIN portfolio_identifier p2
ON p1.code = p2.code
SET p1.owner_id = p2.owner_id
WHERE p1.account_id = 139 AND
      p2.account_id <> 139;

相关问题