我的本地 Postgres 数据库中有 3 个表:
[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
在运行时我会知道animal_id
。我需要运行 SQL 来更新animal_attribute_value_name
与此项目相关联,例如:
UPDATE
animal_attribute_values aav
SET
aav.animal_attribute_value_name = 'Some new value'
WHERE
# Somehow join from the provided animal_id???
我可能需要做某种嵌套SELECT
or INNER JOIN
在 - 的里面WHERE
条款,但不知道如何做到这一点。提前致谢!
Edit:
假设我有一个animal
记录以下值:
[myschema].[animals]
--------------------
animal_id = 458
animal_attrib_type_id = 38
animal_attrib_value_id = 23
以及相应的animal_attrib_value
(id = 23)具有以下值:
[myschema].[animal_attrib_values]
--------------------------------
animal_attrib_value_id = 23
animal_attrib_value_name = 'I am some value that needs to be changed.'
在运行时,我只有animal_id
(458)。我需要查找对应的animal_attrib_value
(23) 并改变其animal_attrib_value_name
to 'Some new value'
,全部都在单个 UPDATE 语句内。