Thread: MINUS emulation?

MINUS emulation?

From
Barry Baldwin
Date:
Hi all,

I'm trying to do a query that returns all the records in one  table unless
they exist in another table.

For example the first query I tried was this;

Select  A.field_id, A.data, B.field_id, B.data
from table_1 A, table_2 B
where  A.field_id <> B.field_id;

This query resulted in no records being returned, I believe this is because
Table_2 is empty.

I then tried :

Select field_id, data 
from table_1
minus
Select field_id, data
from table_2;

This didn't work because the Minus directive isn't recognized.

Does anyone have a suggestion on how I might accomplish this?

TIA,

Barry



Re: [SQL] MINUS emulation?

From
"tjk@tksoft.com"
Date:
Barry,

> I'm trying to do a query that returns all the records in one  table unless
> they exist in another table.

This implies you need this:

Select  A.field_id, A.data, B.field_id, B.data
from table_1 A, table_2 B where A.field_id not in
(select A.field_id from table_1 A, table_2 B where
A.field_id = B.field_id);


Troy


>
> Hi all,
>
> I'm trying to do a query that returns all the records in one  table unless
> they exist in another table.
>
> For example the first query I tried was this;
>
> Select  A.field_id, A.data, B.field_id, B.data
> from table_1 A, table_2 B
> where  A.field_id <> B.field_id;
>
> This query resulted in no records being returned, I believe this is because
> Table_2 is empty.
>
> I then tried :
>
> Select field_id, data
> from table_1
> minus
> Select field_id, data
> from table_2;
>
> This didn't work because the Minus directive isn't recognized.
>
> Does anyone have a suggestion on how I might accomplish this?
>
> TIA,
>
> Barry
>
>
> ************
>
>

Re: [SQL] MINUS emulation?

From
Tom Lane
Date:
Barry Baldwin <bbaldwin@indyme.com> writes:
> Select field_id, data 
> from table_1
> minus
> Select field_id, data
> from table_2;

The SQL standard spelling for this is "EXCEPT", not "MINUS".
        regards, tom lane