Re: weird structure - Mailing list pgsql-sql

From Yury Don
Subject Re: weird structure
Date
Msg-id 39A5E7A4.E928FC2C@vpcit.ru
Whole thread Raw
In response to weird structure  (rdg@viafractal.com.br)
List pgsql-sql
rdg@viafractal.com.br wrote:
> 
> Hi,
> 
> Consider the following tables/fields:
> table "person": fields "p_id", "p_name".
> table "person_attribute": fields "a_id", "a_name".
> table "person_data": fields "d_person_id", "d_attribute_id",
> "d_value".
> 
> Also consider that a person may not have data related to all possible
> attributes.
> 
> Using this structure, how could I retrieve in one row with a single
> select statement all attributes from a person (showing null to
> attributes that were not registered to him)?
> 
> Thanks for any suggestion,
> --
> Renato
> Sao Paulo - SP - Brasil
> rdg@viafractal.com.br

I did similar things using the following technique:
in frontend I gather all attributes from person_attribute and then
generate a query like this:

select *, (select distinct d_value from person_data where d_person_id =
person.p_id and 
d_attribute_id = 'here first attribute id'), (select distinct d_value
from person_data where d_person_id = person.p_id and d_attribute_id =
'here second attribute id'), ... from person


-- 
Sincerely yours,
Yury


pgsql-sql by date:

Previous
From: Rodger Donaldson
Date:
Subject: Regular expression query
Next
From: Yury Don
Date:
Subject: Re: [GENERAL] Getting the result of a query using COUNT(*)