В plpgsql я хотел бы использовать результаты запроса A для выполнения нескольких запросов (запросов B) и возвращать результаты всех запросов B в виде одной таблицы, но я не уверен, как это сделать. Я использую функциональность 'RETURN QUERY' в plpgsql?
Вот пример. Функция находит все записи zip_code с заданным кодом, а затем ищет во всех местах состояние этого исходного zip_code. (Я знаю, что текущий запрос может быть выполнен через объединение, но мой АКТУАЛЬНЫЙ запрос потребовал бы этой функциональности.)
begin;
create OR REPLACE function t() returns setof locations as
$$
declare z zip_codes%rowtype;
begin
for z in select * from zip_codes where code like '%32301%'
LOOP
return query select * from locations where locations.state like z.state; #query B
# All I want to do is return the results from all of the above queries as one
# result set.
END LOOP;
return;
end
$$
language 'plpgsql';
commit;
Есть идеи, как мне это сделать?