我有一张像这样的 2 张桌子:
table1: (time, value, id) , table2:(time, value, id, ...< /em>)
我需要使用基于 id 的 table2 查询结果更新 table1, 例如查询可以是:
SELECT * from table2 where value > 2
并且这个查询返回超过数百行,
我需要使用基于 table1
(id
) 的这些行更新 set time=q.time, value=q.value where id=q.id
是否可以使用 sql 查询?
我不需要 UPSERT,因为我确定我在两个表中都有相同的 ID,只需要更新
答案 0 :(得分:1)
Postgres 支持 UPDATE 的 FROM
子句:
update table1
set time = q.time,
value = q.value
from table2 q
where table2.id = table1.id
and table2.value > 2;