sql – Postgres更新与内部连接跨2个表?
发布时间:2020-05-27 21:32:29 所属栏目:MsSql 来源:互联网
导读:我的本地Postgres数据库中有3个表: [myschema].[animals]--------------------animal_idanimal_attrib_type_id (foreign key to [myschema].[animal_attrib_types])animal_attrib_value_id (foreign key to [myschema].[ani
|
我的本地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???
我可能必须在WHERE子句中做一些嵌套的SELECT或INNER JOIN,但不知道该怎么做.提前致谢! 编辑: 假设我有一个具有以下值的动物记录: [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更改为“一些新值”,这些都在单个UPDATE语句的内部. 解决方法UPDATE
animal_attribute_values aav
SET
animal_attribute_value_name = 'Some new value'
FROM animals aa
WHERE aa.animal_id = 458
AND aa.animal_attrib_value_id = aav.animal_attrib_value_id
; (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
