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