| 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: | Whole Thread | Raw Message | 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,
| 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 |