sql >> Base de Datos >  >> RDS >> Mysql

Cómo resolver el error de MySQL ¿No puede especificar la tabla de destino X para la actualización en la cláusula FROM?

La razón por la que esto no funciona es que MySQL no le permite hacer referencia a la tabla que está actualizando (puede venir) dentro de una subconsulta.

Sin embargo, esto se puede solucionar mediante el uso de una consulta en lugar de la propia tabla en el FROM, que tiene el efecto de copiar los valores de la tabla solicitada en lugar de hacer referencia a la que está actualizando.

Tan efectivamente, esto, incluso si es contrario a la intuición, funcionará:

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