exclusion query

From: Louis-David Mitterrand <vindex+lists-pgsql-sql(at)apartia(dot)org>
To: pgsql-sql(at)postgresql(dot)org
Subject: exclusion query
Date: 2008-09-22 14:34:14
Message-ID: 20080922143414.GA1983@apartia.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi,

I've got five related tables:

- person_type:
id_person_type integer
type_fr text

- person:
id_person integer
...

- person_to_event:
id_person -> person
id_person_type -> person_type (e.g: actor, director, producer, ...)
id_event -> event

- event:
id_event integer
id_event_type -> event_type
...

- event_type:
id_event_type integer
type_fr text

To select person_type's used in a certain event_type I have this query:

select distinct pt.type
from person_type pt
natural join person_to_event
join event e using (id_event)
natural join event_type et
where et.type_fr='théâtre';

Now, I'd like to select person_type's _not_ used in a certain particular
event (say id_event=219).

I can see how to build a quey to that effect, but is there a more
obvious, clean, short solution? Something that looks like the above
query maybe?

Thanks,

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Louis-David Mitterrand 2008-09-22 14:45:03 Re: exclusion query
Previous Message Marc Mamin 2008-09-22 10:55:24 varchar::timezone conversion