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

¿Cómo eliminar de seleccionar en MySQL?

SELECT (sub)consultas devuelven resultados conjuntos . Entonces necesitas usar IN , no = en tu WHERE cláusula.

Además, como se muestra en esta respuesta no puede modificar la misma tabla desde una subconsulta dentro de la misma consulta. Sin embargo, puede SELECT luego DELETE en consultas separadas, o anidar otra subconsulta y crear un alias para el resultado de la subconsulta interna (aunque parece bastante extraño):

DELETE FROM posts WHERE id IN (
    SELECT * FROM (
        SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 )
    ) AS p
)

O use uniones como lo sugiere Mchl .