X-Original-To: pgsql-general-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id C78E33A3BCE for ; Fri, 29 Oct 2004 23:13:05 +0100 (BST) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 97569-01 for ; Fri, 29 Oct 2004 22:13:01 +0000 (GMT) Received: from flake.decibel.org (flake.decibel.org [66.143.173.58]) by svr1.postgresql.org (Postfix) with ESMTP id 34E5F3A3B9D for ; Fri, 29 Oct 2004 23:13:03 +0100 (BST) Received: by flake.decibel.org (Postfix, from userid 1001) id 5D3101C900; Fri, 29 Oct 2004 22:13:02 +0000 (GMT) Date: Fri, 29 Oct 2004 17:13:02 -0500 From: "Jim C. Nasby" To: Michael Fuhr Cc: pgsql-general@postgresql.org Subject: Re: Turning a subselect into an array Message-ID: <20041029221302.GU55164@decibel.org> References: <20041028223729.GF55164@decibel.org> <20041028232152.GA76168@winnie.fuhr.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20041028232152.GA76168@winnie.fuhr.org> X-Operating-System: FreeBSD 4.10-RELEASE-p3 i386 X-Distributed: Join the Effort! http://www.distributed.net User-Agent: Mutt/1.5.6i X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.0 tagged_above=0.0 required=5.0 tests= X-Spam-Level: X-Archive-Number: 200410/1471 X-Sequence-Number: 67994 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? On Thu, Oct 28, 2004 at 05:21:52PM -0600, Michael Fuhr wrote: > On Thu, Oct 28, 2004 at 05:37:29PM -0500, Jim C. Nasby wrote: > > I'm sure this has been answered before, but the search seems to be down > > again. > > > > How can I convert the results of a subselect into an array? IE: > > > > CREATE TABLE a(a int, b int, c int[]); > > INSERT INTO table_a > > SELECT a, b, (SELECT c FROM table_c WHERE table_c.parent = table_b.id) > > FROM table_b > > See the "Array Constructors" section in the PostgreSQL documentation: > > http://www.postgresql.org/docs/7.4/static/sql-expressions.html#SQL-SYNTAX-ARRAY-CONSTRUCTORS > > INSERT INTO table_a > SELECT a, b, ARRAY(SELECT c FROM table_c WHERE table_c.parent = table_b.id) > FROM table_b > > -- > Michael Fuhr > http://www.fuhr.org/~mfuhr/ > > ---------------------------(end of broadcast)--------------------------- > TIP 7: don't forget to increase your free space map settings > -- Jim C. Nasby, Database Consultant decibel@decibel.org Give your computer some brain candy! www.distributed.net Team #1828 Windows: "Where do you want to go today?" Linux: "Where do you want to go tomorrow?" FreeBSD: "Are you guys coming, or what?"