我在本地的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