Re: UPDATE command with FROM clause
Rob Sargent <[email protected]> Tue, 13 Aug 2019 15:45:57 -0600
| Newsgroups | gmane.comp.db.postgresql.sql |
|---|---|
| Message-ID | <[email protected]> |
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