我有一个相当复杂的查询,我发现很难在FROM
中创建从同一子查询更新两个不同表的结果。我面临的困难表明我尝试了错误的流程:
下面是我从子查询中更新表1的脚本的一个极其简化的版本:
UPDATE
table1
SET
columnX= subquery.column2
FROM
(
SELECT column1, column2, column2
FROM table2
) AS subquery
WHERE subquery.column1 = table1.column1;
现在,我需要将第三个表(table3(放入混合中,并将table2(subquery(.column2映射到INSERT
上的值。我不能使用第二个查询来实现这一点,因为子查询生成的UUID必须在table1.columnX和table3.column1中保持。
我可以在子查询中包括INSERT
,同时仍然返回相同的子查询表吗?
INSERT
。。。RETURNING uuid_column_name
可能是您在子查询中所需要的魔法。
https://www.postgresql.org/docs/13/sql-insert.html