¿Postgres se actualiza con una combinación interna en 2 tablas?
Tengo 3 tablas en mi base de datos local de Postgres:
[myschema].[animals]
--------------------
animal_id
animal_attrib_type_id (foreign key to [myschema].[animal_attrib_types])
animal_attrib_value_id (foreign key to [myschema].[animal_attrib_values])
[myschema].[animal_attrib_types]
--------------------------------
animal_attrib_type_id
animal_attrib_type_name
[myschema].[animal_attrib_values]
--------------------------------
animal_attrib_value_id
animal_attrib_value_name
En el tiempo de ejecución sabré laanimal_id
. Necesito ejecutar SQL para actualizar elanimal_attribute_value_name
asociado con este elemento, por lo que algo como:
UPDATE
animal_attribute_values aav
SET
aav.animal_attribute_value_name = 'Some new value'
WHERE
# Somehow join from the provided animal_id???
Puede que tenga que hacer algún tipo de anidado.SELECT
oINNER JOIN
dentro deWHERE
Cláusula, pero no estoy seguro de cómo hacer esto. ¡Gracias por adelantado!
Editar:
Digamos que tengo unanimal
Grabar con los siguientes valores:
[myschema].[animals]
--------------------
animal_id = 458
animal_attrib_type_id = 38
animal_attrib_value_id = 23
Y la correspondienteanimal_attrib_value
(con id = 23) tiene los siguientes valores:
[myschema].[animal_attrib_values]
--------------------------------
animal_attrib_value_id = 23
animal_attrib_value_name = 'I am some value that needs to be changed.'
En el tiempo de ejecución, solo tengo elanimal_id
(458). Necesito buscar el correspondiente.animal_attrib_value
(23) y cambiar suanimal_attrib_value_name
a'Some new value'
, todo dentro de una sola instrucción UPDATE.