Re: Basic SQL join question - Mailing list pgsql-general

From Simon Mitchell
Subject Re: Basic SQL join question
Date
Msg-id 3E3AD936.3000100@jseb.com
Whole thread Raw
In response to Re: Basic SQL join question  (Stephan Szabo <sszabo@megazone23.bigpanda.com>)
Responses Re: Basic SQL join question
List pgsql-general
Hi,

If you had an id column you could get the result that you need.
If I knew how to get get the equivalent of  oralce row id from
postgresql then may be the ID column would not be needed.

This may not be the best way, but i could get it to work by pivoting off
a view of  IDs.


Create the view of all IDs

create view v_abc as select id from a union select id from b union
select id from c;

Then use left join on in your query.

select a,b,c from v_abc
left join a on v_abc.id = a.id
left join c on v_abc.id = c.id
left join b on v_abc.id = b.id;

 a  | b  | c
----+----+----
 a1 | b1 | c1
 a2 | b2 | c2
 a3 |    | c3
    |    | c4
(4 rows)

Regards,
Simon

PS - you could post your join query in a view.
     - view, stored procedures etc... is why i do not use mysql.


Example table data.

Table a:

 id | a
----+----
  1 | a1
  2 | a2
  3 | a3

Table b:

 id | b
----+----
  1 | b1
  2 | b2


Table c:

 id | c
----+----
  1 | c1
  2 | c2
  3 | c3
  4 | c4



Stephan Szabo wrote:

>On Fri, 31 Jan 2003, Jean-Christian Imbeault wrote:
>
>
>
>>Sorry for this simple question but I can't seem to get Postgres to do
>>what I want ...
>>
>>I want to get the concatenation of 2 or more tables with absolutely
>>nothing in common. How can I do this?
>>
>>For example
>>
>>Table a:
>>
>>   a
>>-----
>>  a1
>>  a2
>>  a3
>>
>>Table b:
>>
>>   b
>>-----
>>  b1
>>  b2
>>
>>Table c:
>>
>>   c
>>-----
>>  c1
>>  c2
>>  c3
>>  c4
>>
>>What is the proper SQL to return:
>>
>>   a |  b |  c
>>---------------
>>  a1   b1   c1
>>  a2   b2   c2
>>  a3        c3
>>            c4
>>
>>
>>
>
>I can't think of a real SQL solution (although there might be
>one).  A pl function could do this but it'd be a little wierd
>probably.  Note that unless those tables are really selects with
>ordering the results are pretty indeterminate and probably
>meaningless since order is not guaranteed.
>
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 4: Don't 'kill -9' the postmaster
>
>
>



pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Query performance PLEASE HELP
Next
From: Dmitry Tkach
Date:
Subject: Re: Query performance PLEASE HELP