Grunden til, at dette ikke virker, er, at MySQL ikke tillader dig at referere til tabellen, som du opdaterer (kan komme) i en underforespørgsel.
Dette kan dog overvindes ved at bruge en forespørgsel i stedet for selve tabellen i FROM, hvilket har den virkning, at de anmodede tabelværdier kopieres i stedet for at referere til den, du opdaterer.
Så effektivt vil dette, selvom det er kontraintuitivt, virke :
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