Re: UPDATE command with FROM clause

From: Rob Sargent <robjsargent(at)gmail(dot)com>
To: pgsql-sql(at)lists(dot)postgresql(dot)org
Subject: Re: UPDATE command with FROM clause
Date: 2019-08-13 21:45:57
Message-ID: b9240eff-0e2b-b260-8177-94076984cddf@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql


On 8/13/19 12:37 PM, JORGE MALDONADO wrote:
> Hi,
>
> I have a query like this:
>
> UPDATE chartsclub.secc_esp_votar_votos
> SET svv_puntos = 0 FROM
> (SELECT * FROM chartsclub.secc_esp_votar_votos AS tblVotos WHERE
> svv_sva_clave = 114 EXCEPT
>        (SELECT DISTINCT ON (svv_fechareg) * FROM
> chartsclub.secc_esp_votar_votos AS tblVotos WHERE svv_sva_clave = 114
> ORDER BY svv_fechareg))
>
> Will the UPDATE command affect only (all) records generated by the
> SELECT clause in the FROM clause?
>
> I suppose that, if I include a WHERE clause, the condition will be
> applied to the records obtained by the SELECT clause in the FROM clause.
> Is this correct?
>
> My goal is to get a set of records from one table and update only such
> a set of records.
> In this case, the set of records to be updated are those obtained by
> the SELECT command in the FROM clause.
> As you can see, there is only one table involved but I added an alias
> to the SELECT statement in the FROM clause based on what I read in the
> documentation.
>
> Best regards,
> Jorge Maldonado
>
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
> Libre de virus. www.avast.com
> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
>
>

I'm not clear how the value of svv_fechareg affects which rows you don't
want to update but I think all you need is something along the lines of

UPDATE chartsclub.secc_esp_votar_votos

set svv_puntos = 0

where svv_sva_clave =114

--here's where the purpose of svv_fechareg comes into play. if you
have an explicit value(s) for it, apply that as "!=" or "not in
(value, value)"

and svv_fechareg is not null

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message David G. Johnston 2019-08-13 22:47:31 Re: UPDATE command with FROM clause
Previous Message JORGE MALDONADO 2019-08-13 18:37:42 UPDATE command with FROM clause