Lý do tại sao điều này không hoạt động là MySQL không cho phép bạn tham chiếu đến bảng mà bạn đang cập nhật (cancome) trong một truy vấn con.
Tuy nhiên, điều này có thể được khắc phục bằng cách sử dụng một truy vấn thay vì chính bảng trong FROM, có tác dụng sao chép các giá trị bảng được yêu cầu thay vì tham chiếu đến giá trị mà bạn đang cập nhật.
Vì vậy, hiệu quả này, ngay cả khi bộ đếm trực quan, sẽ hoạt động:
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