public inbox for [email protected]  
help / color / mirror / Atom feed
From: Michael Fuhr <[email protected]>
To: Jim C. Nasby <[email protected]>
Cc: [email protected]
Subject: Re: Turning a subselect into an array
Date: Fri, 29 Oct 2004 22:40:57 -0600
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
	<[email protected]>
	<[email protected]>

On Fri, Oct 29, 2004 at 05:13:02PM -0500, Jim C. Nasby wrote:
> Ok, next stupid question that I can't find in the docs... How would I
> join a table to an array? IE: if I have an array of primary keys for
> some table and I want to get the name field from that table and turn it
> back into an array, how would I do that?

See the "Subquery Expressions" and "Row and Array Comparisons"
sections in the PostgreSQL documentation:

http://www.postgresql.org/docs/7.4/static/functions-subquery.html
http://www.postgresql.org/docs/7.4/static/functions-comparisons.html

If I understand you correctly, this should work:

SELECT ARRAY(SELECT name FROM foo WHERE id = ANY(ARRAY[1,2,3]));

A test I just ran showed "id = ANY(ARRAY[1,2,3])" doing a sequential
scan whereas "id IN (1,2,3)" did an index scan, so you might want to
use the latter if possible.

-- 
Michael Fuhr
http://www.fuhr.org/~mfuhr/



view thread (5+ messages)  latest in thread

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: [email protected]
  Cc: [email protected], [email protected], [email protected]
  Subject: Re: Turning a subselect into an array
  In-Reply-To: <[email protected]>

* 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