Thread: Update from select

Update from select

From
Bret Stern
Date:
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



Re: Update from select

From
Igor Neyman
Date:
> 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

Re: Update from select

From
Justin Tocci
Date:
em stands for "easy money"

update tbl1
set col3=em.col3,col4=em.col4,col5=em.col5
from
(select col3, col4,col5 from tbl2 where col1="criteria") em

Regards,

Justin Tocci
Programmer
www.workflowproducts.com
7813 Harwood Road
North Richland Hills, TX 76180
phone 817-503-9545
skype justintocci

On May 13, 2013, at 3:23 PM, Bret Stern <bret_stern@machinemanagement.com> wrote:

> 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
>
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general



Re: Update from select

From
Vincent Veyron
Date:
Le lundi 13 mai 2013 à 13:23 -0700, Bret Stern a écrit :
> 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")
>

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


--
Salutations, Vincent Veyron
http://gdlc.fr/logiciels
Applications de gestion des sinistres assurance et des contentieux juridiques



Re: Update from select

From
Bret Stern
Date:
Easy money indeed. Thanks for the help
On Mon, 2013-05-13 at 15:28 -0500, Justin Tocci wrote:
> em stands for "easy money"
>
> update tbl1
> set col3=em.col3,col4=em.col4,col5=em.col5
> from
> (select col3, col4,col5 from tbl2 where col1="criteria") em
>
> Regards,
>
> Justin Tocci
> Programmer
> www.workflowproducts.com
> 7813 Harwood Road
> North Richland Hills, TX 76180
> phone 817-503-9545
> skype justintocci
>
> On May 13, 2013, at 3:23 PM, Bret Stern <bret_stern@machinemanagement.com> wrote:
>
> > 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
> >
> >
> >
> > --
> > Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> > To make changes to your subscription:
> > http://www.postgresql.org/mailpref/pgsql-general
>
>
>