sql >> Databáze >  >> RDS >> Mysql

Odstraňte sadu výsledků dotazu SQL

Je pravda, že nemůžete použít stejnou tabulku, ze které chcete odstranit řádky v přímém podvýběru, ale pomocí malého triku – podvýběru na podvýběru jako odvozené tabulky – to můžete udělat:

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

Předpokládám, že řádky bez komentářů by měly být smazány.



  1. Mysqlimport z potrubí

  2. Vytvořte tabulku Excelu z databáze Oracle

  3. Jak mohu do tabulky přidat omezení ON DELETE?

  4. Rozdíl mezi SET autocommit=1 a START TRANSACTION v mysql (Přehlédl jsem něco?)