Mysql
 sql >> Database >  >> RDS >> Mysql

Elimina un set di risultati di query SQL

È vero che non puoi usare la stessa tabella da cui vuoi eliminare le righe in una sottoselezione diretta, ma con un piccolo trucco - una sottoselezione su una sottoselezione come tabella derivata - puoi farlo:

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
);

Presumo che le righe senza commenti debbano essere eliminate.