This is a discussion on Return data from function within the pgsql Admins forums, part of the PostgreSQL category; --> Hello, I need to create a function that find data over 3 tables, merge and return data. With example ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Hello, I need to create a function that find data over 3 tables, merge and return data. With example can be specified more clearly: 1.1 Find all addresses code; 1.2 For each addresses code, get address, complement and city on the first table; 1.3 For each addresses code, get address, complement and city on the second table; 1.4 Merge result from first and second tables and return to the function; I would like to do not using cursor. Do you have any ideas how to implement? Thanks in advance. ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend |
| |||
| The magic you're looking for is UNION ALL. You could just union the two address tables together and join that to the address code table, but that'll probably lead to an inefficient plan. You'll likely need to join the address code table to each address table separately, and then UNION ALL those together. On Tue, Apr 17, 2007 at 04:17:36PM -0300, Alexander B. wrote: > Hello, > > I need to create a function that find data over 3 tables, merge and > return data. > With example can be specified more clearly: > > 1.1 Find all addresses code; > 1.2 For each addresses code, get address, complement and city on the > first table; > 1.3 For each addresses code, get address, complement and city on the > second table; > 1.4 Merge result from first and second tables and return to the function; > > I would like to do not using cursor. > Do you have any ideas how to implement? > > Thanks in advance. > > ---------------------------(end of broadcast)--------------------------- > TIP 6: explain analyze is your friend > -- Jim Nasby jim@nasby.net EnterpriseDB http://enterprisedb.com 512.569.9461 (cell) ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings |
| ||||
| On Tuesday 17 April 2007 15:17, Alexander B. wrote: > Hello, > > I need to create a function that find data over 3 tables, merge and > return data. > With example can be specified more clearly: > > 1.1 Find all addresses code; > 1.2 For each addresses code, get address, complement and city on the > first table; > 1.3 For each addresses code, get address, complement and city on the > second table; > 1.4 Merge result from first and second tables and return to the function; > > I would like to do not using cursor. > Do you have any ideas how to implement? > I'm not convinced you can't do this from plain sql, but if you're sure a function is the way to go, see the docs on set returning functions: http://www.postgresql.org/docs/curre...ABLE-FUNCTIONS -- Robert Treat Database Architect http://www.omniti.com/ ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org |