Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Data Bases > Pgsql Sql > Re: Updating wi...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 3 of 3 Topic 3428 of 3799
Post > Topic >>

Re: Updating with a subselect

by Dennis Muhlestein <djmuhlestein@[EMAIL PROTECTED] > Apr 24, 2008 at 04:11 PM

mateamargo wrote:
> Hi, I need to update a field from a table based in a count.
> 
> This is the query:
> 
> 
> update    shops
> set    itemsqty =
>     (
>     select     count(*)
>     from     items i1
>     join      shops s1 on i1.shopid = s1.shopid
>     where   s1.shopid = s0.shopid
>     )
> from     shops s0
> 
> 
> The problem I'm having is that all the shops are updated with the
> items quantity of the first shop.
> I've tried using the count without a subselect, but PostgreSQL
> complains about it.
> 
> How can I do this?

Put the subquery into your from clause:

update shops set itemsqty = newitemsqty
from shops, (
  select s.shopid as shopid, count(*) as newitemsqty
  from shops s join items i on i.shopid=s.shopid
  group by s.shopid
) i
where shops.shopid = i.shopid

IM****TANT:
notice that I didn't use an alias for the outer shops table.  That won't 
work when you're doing an update statement.  You can't update a join, 
only a table, so you have to use the where clause instead of join on ...

-Dennis
 




 3 Posts in Topic:
Updating with a subselect
mateamargo <mateamargo  2008-04-22 12:43:16 
Re: Updating with a subselect
mateamargo <mateamargo  2008-04-22 12:52:22 
Re: Updating with a subselect
Dennis Muhlestein <djm  2008-04-24 16:11:39 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Mon Dec 1 22:04:27 CST 2008.