Re: Query Advice
От | Vincent Elschot |
---|---|
Тема | Re: Query Advice |
Дата | |
Msg-id | dde4b09c-cccf-7340-0705-5eb64d010c7e@xs4all.nl обсуждение исходный текст |
Ответ на | Query Advice (Gary Chambers <gwchamb@gwcmail.com>) |
Список | pgsql-sql |
Op 30/03/2017 om 20:03 schreef Gary Chambers: > All, > > Given the following tables: > > company > ------- > company_id > name > > postal_addresses > ---------------- > postal_address_id > company_id > description > addr > city > stprov > zip > > > I've been handling joins as such: > > select c.company_id, > array(select concat_ws('|', pa.description, pa.addr, pa.city, > pa.stprov, pa.zip) > ) addrs > from companies c inner join postal_addresses pa using (company_id) > where company_id = 1731; > > Is there a better way to get the company information along with all of > the > addresses in a single query? This works, but it requires the additional > step of splitting the addresses by the the delimiter at the application > layer. > > Thanks for any advice you have. > > -- > G. > > "better" depends very much on your needs. I tend to return this kind of data as a JSON string because python (django) can be instructed to automatically translate that into an array that I can loop through. Do you have any particular reason for wanting to do this in one query, given that you seem to want a regular resultset for the addresses?
В списке pgsql-sql по дате отправления: