“如何解决MySQL错误”;你可以';t在FROM子句“中指定要更新的目标表X?”;?
为什么这个查询不起作用“如何解决MySQL错误”;你可以';t在FROM子句“中指定要更新的目标表X?”;?,mysql,Mysql,为什么这个查询不起作用 DELETE FROM cancome WHERE user_id IN ( SELECT user_id FROM cancome GROUP BY user_id HAVING COUNT(user_id)>3 ) limit 3 我收到以下错误消息: [Err]1093-无法在FROM子句中为更新指定目标表“cancome” 这不起作用的原因是MySQL不允许您在子查询中引用正在更新的表(cancome) 但是,可以通过在FROM中使用查询而
DELETE FROM cancome WHERE user_id IN (
SELECT user_id FROM cancome
GROUP BY user_id
HAVING COUNT(user_id)>3
)
limit 3
我收到以下错误消息:
[Err]1093-无法在FROM子句中为更新指定目标表“cancome”
这不起作用的原因是MySQL不允许您在子查询中引用正在更新的表(cancome) 但是,可以通过在FROM中使用查询而不是表本身来克服这一问题,这样做的效果是复制请求的表值,而不是引用正在更新的表值 因此,即使违反直觉,这也能有效地发挥作用:
DELETE FROM cancome WHERE user_id IN
( SELECT user_id FROM (SELECT * FROM cancome) AS cancomesub
GROUP BY user_id HAVING COUNT(user_id)>3 )
limit 3
当我尝试您回答的这段代码时,我收到一条消息“[Err]1248-每个派生表都必须有自己的别名”谢谢您的工作您是对的,这是违反直觉的,您也是对的,它工作起来很有魅力。:-)这是否保证以原子方式运行?