PostgreSQL - Ayuda con una subsonsulta (update)

   
Vista:

Ayuda con una subsonsulta (update)

Publicado por YYanes (20 intervenciones) el 01/09/2017 20:19:59
Hola amig@s:
llevo algún tiempo haciendo un Script de una base de datos para un sistema, y ya son tantas líneas de código (3871 líneas para ser exactos) que ya mi cabeza no genera mucho. Lo que necesito es lo siguiente:

Tengo por ejemplo una tabla Unidad_B que tiene atributos comunes con una tabla Unidad_A. En cada caso tengo el atributo "Id" y el atributo "siglas", pero lo que necesito es actualizar los Id en la tabla Unidad_B según sus siglas comunes en la tabla Unidad_A, por ejemplo:

Unidad_A:
Id Siglas
11 'abc'
12 'def'
13 'hij'
14 'klm'

Unidad_B
Id Siglas
21 'abc'
22 'def'
23 'hij'
24 'klm'

Necesito que al correr la sentencia la tabla Unidad_B quede de la siguiente forma:

Unidad_B
Id Siglas
11 'abc'
12 'def'
13 'hij'
14 'klm'
es decir, que se actualice el campo 'Id' según los valores de las Siglas correspondientes en Unidad_A.

He probado con la siguiente sentencia, pero la subconsulta me arroja más de un resultado, y por tanto, me da error:

update Unidad_B set Unidad_B.id = (select Unidad_A.id from Unidad_A where Unidad_A.siglas = Unidad_B.siglas);

¿Alguna idea? Un GigaSaludo y muchas gracias de antemano!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con una subsonsulta (update)

Publicado por martin (107 intervenciones) el 05/09/2017 16:39:15
update Unidad_B set Unidad_B.id = Unidad_A.id from Unidad_A where Unidad_A.siglas = Unidad_B.siglas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con una subsonsulta (update)

Publicado por YYanes (20 intervenciones) el 06/09/2017 17:26:35
Muchas gracias amigo!! una manera muy práctica de simplificar la subconsulta!! jeje, Un GigaSaludo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad