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

Eliminar un conjunto de resultados de consulta SQL

Es cierto que no puede usar la misma tabla de la que desea eliminar filas en una subselección directa, pero con un pequeño truco, una subselección en una subselección como tabla derivada, puede hacerlo:

DELETE FROM votes
WHERE id IN (
    SELECT 
        t.id
    FROM ( 
        SELECT v.id, COUNT(c.comment) cnt
        FROM votes v
        LEFT JOIN comments c ON f.id = v.post_id
        GROUP BY v.id
        HAVING COUNT(c.comment) = 0 
    ) t
);

Supongo que las filas sin comentarios deben eliminarse.