带有子查询的Postgresql更新[重复]
Posted
技术标签:
【中文标题】带有子查询的Postgresql更新[重复]【英文标题】:Postgresql Update with subquery [duplicate] 【发布时间】:2013-07-09 05:27:18 【问题描述】:UPDATE Customer C
SET name = B.name,
age = B.age
FROM (SELECT A.*, B.* FROM CUSTOMER_TEMP WHERE A.ID = B.ID) AS B
我得到了一个如上所述的 sql,在我运行查询后,它会将我的所有行更新为相同的结果。
我想知道我需要一个 where
UPDATE Customer C
SET name = B.name,
age = B.age
FROM (SELECT A.*, B.* FROM CUSTOMER_TEMP WHERE A.ID = B.ID) AS D
WHERE C.ID = D.ID
但是我得到的这个 id 对于最后一个查询是不明确的。
【问题讨论】:
【参考方案1】:试试这个
update Customer set
name = B.name,
age = B.age
from Customer as C
inner join CUSTOMER_TEMP as B on B.ID = C.ID
SQL FIDDLE EXAMPLE
【讨论】:
以上是关于带有子查询的Postgresql更新[重复]的主要内容,如果未能解决你的问题,请参考以下文章
2017.7.7 postgreSQL在插入造成重复时执行更新
使用 PostgreSQL 查询更新复杂 JSONB 对象以删除子子属性