Re: getting rid of "Adding missing FROM-clause entry...."

From: Rajesh Kumar Mallah <mallah(at)trade-india(dot)com>
To: Christoph Haller <ch(at)rodos(dot)fzk(dot)de>, pgsql-sql(at)postgresql(dot)org
Subject: Re: getting rid of "Adding missing FROM-clause entry...."
Date: 2003-04-17 13:45:43
Message-ID: 200304171915.43852.mallah@trade-india.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Thursday 17 Apr 2003 6:50 pm, Christoph Haller wrote:
> > Actually i have to update multiple columns my original
> > query was:
> >
> > UPDATE profile_master SET
> >
> > title1=a.title1 , fname1=a.fname1 , mname1=a.mname1 ,
> > lname1=a.lname1 , desg1 = a.desg1 FROM
> >
> > (
> > SELECT company_id , titile as title1 ,fname as fname1 ,mname as
>
> mname1 ,
>
> > lname as lname1 ,company_position as desg1 from
>
> public.catalog_key_contacts as b
>
> > where b.company_id=profile_master.company_id order by contact_id
>
> limit 1 offset 0)
>
> > as a WHERE
> >
> > profile_master.source='CATALOG' ;
> >
> > > Hi I am having problem with an UPDATE ... FROM
> > > SQL where the FROM table is a subquery.
> > >
> > > UPDATE profile_master set title1=a.title1 FROM
> > > (
> > >
> > > SELECT company_id , titile as title1 ,fname as fname1 ,mname as
>
> mname1
>
> > > ,lname as lname1 ,company_position as desg1 from
> > > public.catalog_key_contacts where
>
> company_id=profile_master.company_id
>
> > > order by contact_id limit 1 offset 0 ) as a
> > > where profile_master.source='CATALOG' ;
> > > NOTICE: Adding missing FROM-clause entry in subquery for table
> > > "profile_master" UPDATE 711
> > >
> > > its showing an update of 711 however all the 711 matching rows are
>
> getting
>
> > > updated to the same value.
> > >
> > > can anyone tell me how to write this query properly ?
>
> I think you need a second reference to the profile_master table.
> And why are you using "limit 1 offset 0"?

becuase the subquery results in mutiple rowss.
I want the first row to update title1,fname1,mname1,lname1,degs1

and use the second row by using "limit 1 offset 1" to
update title2,fname2,mname2,lname2,degs2 etc

do u still want me to try the query u gave?
(actually i did try and its giving some trivial error)

regds
mallah.

> So I'd say
>
> UPDATE profile_master SET
>
> title1=a.title1 , fname1=a.fname1 , mname1=a.mname1 ,
> lname1=a.lname1 , desg1 = a.desg1 FROM
>
> (
> SELECT company_id , title as title1 ,fname as fname1 ,mname as mname1
> ,
> lname as lname1 ,company_position as desg1
> from public.catalog_key_contacts as b ,profile_master as c
> where b.company_id=c.company_id order by contact_id )
>
> as a WHERE
>
> source='CATALOG' ;
>
> Does this work?
> Regards, Christoph
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
> message can get through to the mailing list cleanly

--
Rajesh Kumar Mallah,
Project Manager (Development)
Infocom Network Limited, New Delhi
phone: +91(11)6152172 (221) (L) ,9811255597 (M)

Visit http://www.trade-india.com ,
India's Leading B2B eMarketplace.

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Stephan Szabo 2003-04-17 13:51:12 Re: planner question..
Previous Message Christoph Haller 2003-04-17 13:20:59 Re: getting rid of "Adding missing FROM-clause entry...."