agora inbox for pgsql-sql@postgresql.org  
help / color / mirror / Atom feed
From: Vincent Elschot <vinny@xs4all.nl>
To: pgsql-sql@postgresql.org
Subject: Re: Query Advice
Date: Thu, 30 Mar 2017 20:16:58 +0200
Message-ID: <dde4b09c-cccf-7340-0705-5eb64d010c7e@xs4all.nl> (raw)
In-Reply-To: <alpine.DEB.2.20.1703301350250.17355@websrv.gogca.com>
References: <alpine.DEB.2.20.1703301350250.17355@websrv.gogca.com>
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-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?


-- 
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql



view thread (7+ messages)  latest in thread

Message-ID: <dde4b09c-cccf-7340-0705-5eb64d010c7e@xs4all.nl>
Permalink:  ../dde4b09c-cccf-7340-0705-5eb64d010c7e@xs4all.nl/
Also on:    postgresql.org/message-id/dde4b09c-cccf-7340-0705-5eb64d010c7e@xs4all.nl

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: vinny@xs4all.nl
  Subject: Re: Query Advice
  In-Reply-To: <dde4b09c-cccf-7340-0705-5eb64d010c7e@xs4all.nl>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox