Re: Update from select - Mailing list pgsql-general

From Igor Neyman
Subject Re: Update from select
Date
Msg-id A76B25F2823E954C9E45E32FA49D70EC1B7CED04@mail.corp.perceptron.com
Whole thread Raw
In response to Update from select  (Bret Stern <bret_stern@machinemanagement.com>)
List pgsql-general
> PG 8.4
> 
> Having trouble putting together an update query to update multiple
> columns in tbl1 from columns in tbl2.
> 
> update tbl1
> set col3,col4,col5
> from
> (select col3, col4,col5 from tbl2 where col1="criteria")
> 
> 
> 
> Can someone add to the Postgres Docs (shown below) to help me with
> this.
> 
> UPDATE employees SET sales_count = sales_count + 1 WHERE id =
>   (SELECT sales_person FROM accounts WHERE name = 'Acme Corporation');
> 
> 
> Many thanks
> 
> Bret Stern


Your question isn't very clear.
Are you updating all records in tbl1? 
Or col1 in tbl1 should also match col1 in tbl2?

If that's the case:

UPDATE tbl1 t1 
  SET col3 = t2.col3, col4 = t2.col4, col5 = t2.col5
  FROM tbl2 t2
  WHERE t1.col1 = t2.col1
    AND t.col1 = "criteria";

Igor Neyman

pgsql-general by date:

Previous
From: Bret Stern
Date:
Subject: Update from select
Next
From: Justin Tocci
Date:
Subject: Re: Update from select