Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Excluir um conjunto de resultados de consulta SQL


É verdade que você não pode usar a mesma tabela da qual deseja excluir linhas em uma subseleção direta, mas com um pequeno truque - uma subseleção em uma subseleção como tabela derivada - você pode fazer isso:
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
);

Estou assumindo que as linhas sem comentários devem ser excluídas.