006 – relacje między tabelami – sql 13

DELETE FROM `gatunki_muzyczne`
WHERE
    `idgatunki_muzyczne` IN (SELECT
        `idgatunki_muzyczne`
    FROM
        (SELECT
            g.*, COUNT(g.`idgatunki_muzyczne`) AS `uzytkownicy`
        FROM
            `gatunki_muzyczne` g
        JOIN `preferencje` p ON p.`idgatunki_muzyczne` = g.`idgatunki_muzyczne`
            AND `preferencja` = 'nie'
        JOIN `imie` i ON p.`idimie` = i.`idimie`
        GROUP BY `nazwa`
        HAVING `uzytkownicy` = (SELECT
                COUNT(*)
            FROM
                `imie`)) subquery)