To create the query for a select where one is NOT in the other - Mailing list pgsql-sql

From Karl Denninger
Subject To create the query for a select where one is NOT in the other
Date
Msg-id 19980919175514.A1837@mcs.net
Whole thread Raw
Responses Re: [SQL] To create the query for a select where one is NOT in the other  (Eric McKeown <ericm@palaver.net>)
List pgsql-sql
I want to specify the following SELECT and can't figure it out:

    Table "a" and table "b" have identical schemas

    I want to select all the records in "a" in which a key field in "a"
    does NOT have a corresponding row in "b".

    I know how to do this if I want the opposite, that is, if I want all
    the rows in "a" in which the key IS present in "b" this works:

    select a.field1, a.field2 from t1 a, t2 b where a.field1 = b.field1;

However, the intuitive modification of this (change "=" to "<>") produces
a monster result in which each row in "a" other than the one which matches
gets output for each instance of "b" (which if you think about it does
make sense).

How do I structure an SQL statement to get the desired rows returned?

--
--
Karl Denninger (karl@denninger.net)

"Yes, the president should resign. He has lied to the American people,
time and time again, and betrayed their trust.  Since he has
admitted guilt, there is no reason to put the American people through
an impeachment.  He will serve absolutely no purpose in finishing out
his term, the only possible solution is for the president to save
some dignity and resign."
________________________________________________________________________

12th Congressional District Hopeful William Jefferson Clinton,
during the Nixon investigations


pgsql-sql by date:

Previous
From: Leslie Mikesell
Date:
Subject: Re: [SQL] How to Make Case InSensitive???
Next
From: Eric McKeown
Date:
Subject: Re: [SQL] To create the query for a select where one is NOT in the other