我在本地的Postgres数据库3个表:Postgres通过2个表的内连接更新?
[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
或INNER JOIN
的WHERE
子句中,但不知道如何做到这一点。提前致谢!
编辑:
比方说,我有一个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
更改为'Some new value'
,这些都在单个UPDATE语句中。
什么的[]周围的标识是什么意思? – wildplasser
没什么,只是在那里为视觉上诉;帮助我更容易地看到“细分”(模式,表格,字段);猜我从我的MS SQL日子借了它 – IAmYourFaja
你的意图不明确。你想更新一个“动物”,改变它的一个属性(指向)一个新的价值?另外:实际的表格定义会有所帮助。 – wildplasser