Re: Haciendo UPDATE desde un SELECT entre 2 tablas

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Fevis Koste <parapostgres(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Haciendo UPDATE desde un SELECT entre 2 tablas
Date: 2008-01-08 18:06:02
Message-ID: 20080108180602.GB14414@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Fevis Koste escribió:
> Saludos listas.
> Estoy probando un UPDATE en una tabla que resulta de un SELECT de otra tabla
> y me da este mensaje de error
> ----------------------------------
> ERROR: more than one row returned by a subquery used as an expression
>
> ********** Error **********
>
> ERROR: more than one row returned by a subquery used as an expression
> SQL state: 21000
> -----------------------------------------
>
> Anexo el query que mando a ejecutar:
> UPDATE t_prueba_productos SET f_prueba =
> (SELECT f_costo_reposicion FROM t_productos_sd
> WHERE t_productos_ssd.f_referencia = t_prueba_productos.f_referencia);

Hmm, y por que no usas el FROM directamente en el update en vez de hacer
un subselect?

Creo que sería así:

update t_prueba_productos
set f_prueba = t_productos_sd.f_costo_reposicion
from t_productos_sd
where t_productos_sd.f_referencia = t_prueba_productos.f_referencia;

Claro que me confunde eso de que tengas t_productos_sd y
t_productos_ssd, quizás está mal mi plantamiento.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fevis Koste 2008-01-08 19:53:40 Re: Haciendo UPDATE desde un SELECT entre 2 tablas
Previous Message Fevis Koste 2008-01-08 17:52:18 Re: Haciendo UPDATE desde un SELECT entre 2 tablas