Ik heb momenteel 3 tabellen.

artists
-------
id
naam


artists_events
--------------
id
artistid
eventid

events
-----------
id
naam



Nu heb ik volgende waarden in artists_events:
1, 1, 1
2, 1, 2

Dus artiest met id 1 speelt op evenement 1 en 2.
Nu ben ik op zoek naar een query die alle artiesten weergeeft die nog niet aan evenement 2 gekoppelt zijn maar wel aan andere evenementen.

Deze query heb ik nu:
select a.* from artists as a, artists_events as ae where ae.eventid!=2 and a.id=ae.artistid;

Deze query geeft alle artiesten weer die niet op evenement nr 2 spelen. Maar een artiest kan op evenement 1 EN 2 spelen. Als dit het geval is, krijg ik nog altijd 1 artiest terug en dat wil ik niet. Als een artiest op event nr 2 speelt maakt het niet uit of hij ergens anders speelt, dan wil ik die artiest niet weergeven. Ik hoop dat iemand aan m'n vraagstelling uit kan.

Kan iemand mij helpen deze query aan te passen?
Zoiets: select a.* from artists a where not exists (select 'dummy' from artists_events b where a.id = b.artistid)
Not exists werkte niet, maar het is me gelukt dmv not in te gebruiken. Bedankt John D.

Reageren