我有两个表A和B.表A有一个名为food的列,它是空的,还有一组唯一的ID。表B具有相同的id匹配集,以及一堆食物值。我希望将食物的值从B变为A.也就是说,我想将表B中id = 1的食物的值移动/复制到表A,其中id = 1,依此类推所有值。我如何用postgres做到这一点?
顺便说一句,我知道我可以使用外键和连接,这不是问题。答案 0 :(得分:1)
我认为安德鲁·拉扎鲁斯在这里的回答正是你所寻找的:updating table rows in postgres using subquery
它只是来自子选择,非标准SQL的更新,但在Postgres中非常有用。
在您的情况下,它可能看起来像:
UPDATE A
SET food=subquery.food
FROM (SELECT id, food
FROM B) AS subquery
WHERE A.id=subquery.id;