Search Postgresql Archives

Re: How do we combine and return results from multiple queries in a loop?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Wow, you guys are some fast-acting dudes (and yes, I am an adult, but a kid at heart).

David, yup, that's exactly the part of the documentation that I read, and that is confusing me, because when I try it at home, it's not working. In fact, the exact example that I'm showing in the first email uses that assumption, but it seems to not be working :-/

But I'll take another look at the query tonight and see if I'm missing something.

On Mon, May 16, 2011 at 1:55 PM, David Johnston <polobo@xxxxxxxxx> wrote:

Please read section â39.6.1. Returning From a Functionâ in the pl/pgsql section of the documentation (actually, you should read the entire section on pl/pgsql programming).

Â

âRETURN QUERY appends the results of executing a query to the function's result set.â [when used with RETURNING SETOF *]

Â

Concatenate and âappendâ are synonyms in this context; otherwise the above quote from section 39.6.1 is basically a word-for-word answer to your question.

Â

David J.

Â

From: pgsql-general-owner@xxxxxxxxxxxxxx [mailto:pgsql-general-owner@xxxxxxxxxxxxxx] On Behalf Of Bernardo Telles
Sent: Monday, May 16, 2011 1:13 PM
To: pgsql-general@xxxxxxxxxxxxxx
Subject: Re: How do we combine and return results from multiple queries in a loop?

Â

Hi John,
Thanks for the quick response. I'll elaborate on the actual problem. Basically, I want to call:

select * from partiesWithin("DAYTONA", "FL", 5);

The partiesWithin() function finds all zip codes (and zip_code centroids), then searches a 5 (or n) mile radius around those centroids for parties. Since each zip code has a 'point' column which is a PostGIS feature, I need to iterate through each of those points, and search for parties within 5 miles of each of the centroids, returning a concatenated query of all parties that were found in any of the queries. Someone mentioned that one way to do that is to use a temporary table inside the partiesWithin function. Any thoughts?

On Mon, May 16, 2011 at 1:28 AM, John R Pierce <pierce@xxxxxxxxxxxx> wrote:

On 05/15/11 8:53 PM, Bernardo Telles wrote:

Hi there,
We'd like to use a plpgsql function to use results from query A to execute several queries B, C, etc., and return the results of all B, C, etc queries as one result set. Would placing 'RETURN QUERY' inside a loop automatically concatenate all 'return query' results in the function's return? If not, how would we go about getting this result?

Â

all the queries would have to have the same fields to do this. Âif they do, then you can write it as a join or union.

in your example case, its easy.

 Âselect * from locations l join zipcode z on l.state = z.state where z.zipcode like '32301%';

this also would be more efficient than the way you proposed

now, if you're thinking of a DIFFERENT problem thats more complex to solve, well, without knowing the actual problem there's not much I can suggest.



--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Â



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux