У меня есть
таблица артистов id, name
таблица групп id, name, genre
таблица артистов artistid, bandid
И я пытаюсь опросить всех артистов, которые не выступают в рок-группе (артист может играть более чем в одной группе.
Следующий запрос работает:
SELECT a.name
FROM arIst a
WHERE NOT EXISTS
(SELECT *
FROM arIst a, bandMembers bm, band b
WHERE a.id = bm.arIstID
AND bm.id = b.id
AND b.genre = “rock");
Но я пытаюсь достичь этого с помощью группы:
select a.name
from artists a, band b, band-artist ba
where a.id=ba.artistid and b.id=ba.bandid
group by(a.id)
HAVING ??? <--- here I am stuck
Как я могу показать только группу по группам, чтобы все строки в группе следовали определенному правилу?
Здесь это band.genre != 'rock'