2016-05-16 48 views

回答

14

之所以这并未用于更新目标表 'cancome'不工作的是,MySQL不允许你在子查询中引用你正在更新的表(可以)。

但是,这可以通过在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 
+0

当我尝试这个代码,你answerd我得到这个消息 “[错误] 1248 - 每一个派生表必须有它自己的别名 “ –

+0

感谢你的工作 –

+1

你是对的,那是违反直觉的,你也是对的,它像魅力一样工作。 :-) – fool4jesus

相关问题