我正在尝试使用where子句中的联接来更新我的表
UPDATE order_history SET Paidvalue = Paidvalue + item_id*1.1
WHERE type='addpack'
and Addstatus='Active'
and ( SELECT count(i.ip)
from ip_ptc i
inner join order_history o ON o.user_id=i.user_id
and i.date='2018-08-17'
)>=4
这是一个错误 You can't specify target table 'order_history' for update in FROM clause
我需要根据数字来比较计数 user_id
两种情况下的引用 order_history
以及 ip_ptc
table。我怎么了
2条答案
按热度按时间vaqhlq811#
该错误意味着您同时更新正在从中选择的表。您可以通过在子查询中构建临时表来克服这个问题
要正确计数,试试这个
p3rjfoxz2#
它对where子句的修改非常有效