Thread: showing multiple reference details from single query

showing multiple reference details from single query

From
Ferindo Middleton Jr
Date:
I have a table (table_one) with two columns, both of which are integers 
which reference the same column (on a one-to-many relationship) row back 
at another table (table_two) which has more detailed info on these 
integer columns:

table_one has the following columns:
id (SERIAL), column_one (INTEGER REFERENCES table_two(id)), column_two 
(INTEGER REFERENCES table_two(id))

table_two has the following columns:
id (SERIAL), more_detailed_info (TEXT)

How can I write a single query which will can uniquely identify in the 
result the separated values of the more_detailed_info field of 
table_two? For instance, if I write the following query:
SELECT * FROM table_one WHERE id = 4 AND table_one.column_one = 
table_two.id;

I'll get rows which will list the more_detailed_info fields one time for 
each match but table_two has more_detailed_info for both column_one and 
column_two. However the query above will only be able to show the 
more_detailed_info field for column_one. How can I show the 
more_detailed_info field for column_two as well on the same row, 
simultaneously with that of column_one

Sorry if this is confusing. I don't know of all the technical jargon 
which involves my question above.

Ferindo


Re: showing multiple reference details from single query

From
Michael Fuhr
Date:
On Sun, Sep 11, 2005 at 06:37:52PM -0400, Ferindo Middleton Jr wrote:
> table_one has the following columns:
> id (SERIAL), column_one (INTEGER REFERENCES table_two(id)), column_two 
> (INTEGER REFERENCES table_two(id))
> 
> table_two has the following columns:
> id (SERIAL), more_detailed_info (TEXT)
> 
> How can I write a single query which will can uniquely identify in the 
> result the separated values of the more_detailed_info field of 
> table_two?

I think you're looking for something like this:

SELECT t1.id,      t1.column_one, t2a.more_detailed_info,      t1.column_two, t2b.more_detailed_info
FROM table_one AS t1
JOIN table_two AS t2a ON t2a.id = t1.column_one
JOIN table_two AS t2b ON t2b.id = t1.column_two;

-- 
Michael Fuhr