On May 1, 2006, at 3:32 , Jim Fitzgerald wrote:

  I have two tables, one of them has names of people and an associated
integer ID. The other table is a list of the people (from the first table) by their ID number that have signed up for a class. How would I write a query that would list all the people from the first table that do not have any entries in the second table? Basically, I want a listing of all my
people who have not signed up for the class.

What you want is sometimes called a semi-difference. Here's how I'd do it:

select person_id, person_name
from persons
natural join (
    select person_id
    from persons
    except
    select person_id
    from class_signups
    ) not_yet_signed_up

where persons is your first table and class_signups is your second table.

Hope this helps!

Michael Glaesemann
grzm seespotcode net




---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to