在 Postgres 中使用键跨表插入值

Inserting values across tables with keys in Postgres

我有两个 tableA 和 B。TableA 有一个名为 food 的列是空的,并且有一组唯一的 ID。 Table B 具有相同的匹配 ID 集和一组食物值。我想将食物的值从 B 获取到 A。也就是说,我想 move/copy 在 table B 中具有 id = 1 的食物的值到 table A 其中 id = 1,等等所有值。我如何用 postgres 做到这一点?

顺便说一句,我知道我可以使用外键和连接,这不是问题所在。

我认为 Andrew Lazarus 在这里的回答正是您要查找的内容:updating table rows in postgres using subquery

它只是来自子 select 的更新,非标准 SQL 但在 Postgres 中非常有用。

在您的情况下,它可能类似于:

UPDATE A
SET food=subquery.food
FROM (SELECT id, food
      FROM  B) AS subquery
WHERE A.id=subquery.id;