Re: Displaying two tables side by side
От | Andreas Haumer |
---|---|
Тема | Re: Displaying two tables side by side |
Дата | |
Msg-id | 411A5976.4090502@xss.co.at обсуждение исходный текст |
Ответ на | Displaying two tables side by side (David Garamond <lists@zara.6.isreserved.com>) |
Ответы |
Re: Displaying two tables side by side
Re: Displaying two tables side by side |
Список | pgsql-sql |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi! David Garamond wrote: > How can you display two tables side by side? Example: > >> select * from t1; > a | b > ---+--- > 2 | 2 > 3 | 5 > 4 | 7 > 9 | 0 > >> select * from t2; > c | d > ---+--- > 4 | 5 > 7 | 3 > 3 | 2 > 1 | 1 > 2 | 0 > > Intended output: > a | b | c | d > ---+---+---+--- > 2 | 2 | 4 | 5 > 3 | 5 | 7 | 3 > 4 | 7 | 3 | 2 > 9 | 0 | 1 | 1 > | | 2 | 0 > > Each table has no keys (and no OIDs). Order is not important, but each > row from each table needs to be displayed exactly once. > You could try to use PosgreSQL's ctid system column to join on like this: test=# select *,ctid from t1;a | b | ctid - ---+---+-------2 | 2 | (0,1)3 | 5 | (0,2)4 | 7 | (0,3)9 | 0 | (0,4) test=# select *,ctid from t2;c | d | ctid - ---+---+-------4 | 5 | (0,1)7 | 3 | (0,2)3 | 2 | (0,3)1 | 1 | (0,4)2 | 0 | (0,5) test=# select * from t1 right outer join t2 on (t1.ctid=t2.ctid);a | b | c | d - ---+---+---+---2 | 2 | 4 | 53 | 5 | 7 | 34 | 7 | 3 | 29 | 0 | 1 | 1 | | 2 | 0 Note that this is of course very platform specific. On Oracle you could use rownum, for example. I don't have a more portable solution on hand right now. HTH - - andreas - -- Andreas Haumer | mailto:andreas@xss.co.at *x Software + Systeme | http://www.xss.co.at/ Karmarschgasse 51/2/20 | Tel: +43-1-6060114-0 A-1100 Vienna, Austria | Fax: +43-1-6060114-71 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFBGll0xJmyeGcXPhERApQ5AKCrOdLg4i6UpycLUGWxTLIpe68C6QCgk2UP gcXbeO6VEw95obz1D8GQFQk= =Ksq6 -----END PGP SIGNATURE-----
В списке pgsql-sql по дате отправления: