首页 > 解决方案 > 有一个 postgres 函数接受一个参数并返回一个表如何将许多这样的结果合并到一个表(SelectMany)中?

问题描述

我想在 Postgres SQL 中做类似 LINQ SelectMany 的事情。我有一个带有这样签名的函数:

CREATE or REPLACE FUNCTION get_objects(id_in int) RETURNS TABLE (name varchar, id_out int)

每次调用它都会返回 200 行。

我有一个返回 in_ID 表的选择。我想在这样一个表的每一行上调用我的函数并将它们合并为一个。换句话说,将许多行列表连接到一个大表中。如何在 Postgres SQL 中做这样的事情(不在函数循环内)?

标签: postgresql

解决方案


使用横向连接。

select l.* 
from the_table_of_in_ids as t -- or put the query in brackets here 
cross join lateral get_objects(t.id) as l;

推荐阅读