2016-05-16 49 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

相關問題