self join

From: Seb <spluque(at)gmail(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: self join
Date: 2011-05-14 22:09:03
Message-ID: 87y629rl34.fsf@kolob.subpolar.dyndns.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi,

This probably reflects my confusion with how self joins work.

Suppose we have this table:

=# SELECT * FROM tmp;
a | b
---+---
1 | 2
2 | 3
4 | 5
(3 rows)

If I want to get a table with records where none of the values in column
b are found in column a, I thought this should do it:

=# SELECT * FROM tmp t1, tmp t2 WHERE t2.b <> t1.a;
a | b | a | b
---+---+---+---
1 | 2 | 1 | 2
1 | 2 | 2 | 3
1 | 2 | 4 | 5
2 | 3 | 2 | 3
2 | 3 | 4 | 5
4 | 5 | 1 | 2
4 | 5 | 2 | 3
4 | 5 | 4 | 5
(8 rows)

I need to get:

a | b | a | b
---+---+---+---
1 | 2 | 1 | 2
4 | 5 | 4 | 5

Or just:

a | b
---+---
1 | 2
4 | 5

--
Seb

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Ian Lawrence Barwick 2011-05-14 22:39:06 Re: self join
Previous Message Charlie 2011-05-14 13:54:10 Re: [SQL] Sorting data based fields in two linked tables