X-Original-To: pgsql-sql@postgresql.org Received: from serwer.skawsoft.com.pl (serwer.skawsoft.com.pl [213.25.37.66]) by postgresql.org (Postfix) with ESMTP id 150CA4758E6 for ; Wed, 19 Mar 2003 13:49:28 -0500 (EST) Received: by serwer.skawsoft.com.pl (Postfix, from userid 1000) id 9FF4C6A202; Wed, 19 Mar 2003 19:49:27 +0100 (CET) Date: Wed, 19 Mar 2003 19:49:27 +0100 To: alexj Cc: pgsql-sql@postgresql.org Subject: Re: trouble with query Message-ID: <20030319184927.GA29082@serwer.skawsoft.com.pl> References: <3e7731a9$0$1051$5402220f@news.sunrise.ch> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <3e7731a9$0$1051$5402220f@news.sunrise.ch> User-Agent: Mutt/1.3.28i From: jasiek@klaster.net X-Archive-Number: 200303/468 X-Sequence-Number: 12507 On Tue, Mar 18, 2003 at 03:47:55PM +0100, alexj wrote: > Hi, > > I'm looking how can I do to insert multiple values from a > complexe query. > > What I want to do is something like that : > > INSERT INTO est_planifie_jour (id,ref_activite,ref_ressource,ref_jour) > (SELECT nextval('est_p_id_p') FROM est_planifie), > (SELECT id_activite FROM activite WHERE > nom = 'SGBD 02 cours théorique), > (SELECT ref_ressource FROM personne,groupe,fait_partie > WHERE groupe.nom ='cycle 1b' AND > fait_partie.ref_groupe = groupe.id_groupe AND > personne.id_personne = fait_partie.ref_personne), > (SELECT id_jour FROM jour WHERE jour.id_jour = 3) > You should rewrite your insert to receive multiple rows from single select. This query shoud be similiar to this below: insert into ... (..) select nextval('est_p_id_p'), id_activite, ref_resource, ref_jour from activite, personne,groupe,fait_partie,jour where activite.nom='..' and fait_partie.ref_groupe=groupe.id_groupe and groupe.nom='..' and jour.id_jour=3 Regards, Tomasz Myrta