Postgresql:在匹配 id 时从另一个 table 插入值

Postgresql : Insert values from another table while matching id's

我正在尝试构建以下查询:

INSERT INTO table1 (field1, field2)
VALUES (field1, field2) FROM table2
WHERE table2.id = table1.id

从逻辑上讲,由于 WHERE 条件,我收到了“用作表达式的子查询返回的多行”错误,但无法获得解决方法的线索,也无法在现有帖子中找到匹配的案例目前。我测试了这个 approach 但它失败了 ...

感谢您的帮助

我怀疑您真正想要的是用 table2:

的匹配行更新 table1 的行
UPDATE table1 AS t1
SET (field1, field2) = (t2.field1, t2.field2)
FROM table2 AS t2
WHERE t2.id = t1.id