Re: where to start with this procedure ?
От | Stephan Szabo |
---|---|
Тема | Re: where to start with this procedure ? |
Дата | |
Msg-id | 20040520075846.W14089@megazone.bigpanda.com обсуждение исходный текст |
Ответ на | Re: where to start with this procedure ? (Andreas <maps.on@gmx.net>) |
Список | pgsql-sql |
On Thu, 20 May 2004, Andreas wrote: > > Hi Andrei, > > > >Use the Offset and Limit in the SQL query. > >[...] > >SELECT select_list > > FROM table_expression > > WHERE condition > > LIMIT 50 > > OFFSET 10000 > > > >This query will return 50 elements starting with the 10000 elements... so > >the elemenst from 10000 to 10050. > > > > > > That isn't the issue since I only need a specific few of the lines at all. > I need a dynamic WHERE clause. > > It's more like this : > SELECT customer_id, and, some, more, fields > FROM table1 > JOIN table2 > JOIN table3 > .... > > This results in the "huge" set. > On the Access-form I only need the orders, or contact history for 1 > customer. > > As of now I only know 2 ways to solve this. > 1) Load all the tables over the net into Access and let the JOIN run > locally. That way I can filter dynamically by adding a WHERE > customer_id = x to the select above. Why not add the where clause to the select that goes to the server? In any case, you can do a function that does the select with a condition fairly easily with a set returning function in recent versions I think. Make a composite type with the return fields (create type <name> as (...)) then make an sql function that takes an integer returns setof <name> that selects from table1 join table2 ... where customer_id = $1.
В списке pgsql-sql по дате отправления: