Mysql
 sql >> Base de données >  >> RDS >> Mysql

Supprimer un ensemble de résultats de requête SQL

Il est vrai que vous ne pouvez pas utiliser la même table à partir de laquelle vous souhaitez supprimer des lignes dans une sous-sélection directe, mais avec une petite astuce - une sous-sélection sur une sous-sélection en tant que table dérivée - vous pouvez le faire :

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

Je suppose que les lignes sans commentaires doivent être supprimées.