I have a table with these columns:
id, node, parent_node_id
The top-most nodes would have a parent_node_id of
NULL. Is it possible to get a node, and all its parent
nodes, in a single query?
For example, a node might be:
books > computers > databases > oss > postgres
and the rows fetched would be:
1,books,NULL
2,computers,1
3,databases,2
4,oss,3
5,postgres,4
TIA,
CSN
__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free web site building tool. Try it! http://webhosting.yahoo.com/ps/sb/
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match 2 5804
Couple of ways to do it. One is to use the hierarchical query patch
that mimics Oracle's CONNECT BY
syntax at http://www.brasileiro.net/postgres/c...ne-recipe.adp?
recipe_id=19490.
Another way is to use a nested set model, described at http://www.geocrawler.com/archives/3.../10/0/6961775/,
which is an extract from the book SQL For Smarties by Joe Celko.
On Feb 2, 2004, at 4:54 PM, CSN wrote: I have a table with these columns:
id, node, parent_node_id
The top-most nodes would have a parent_node_id of NULL. Is it possible to get a node, and all its parent nodes, in a single query?
For example, a node might be:
books > computers > databases > oss > postgres
and the rows fetched would be:
1,books,NULL 2,computers,1 3,databases,2 4,oss,3 5,postgres,4
TIA, CSN __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free web site building tool. Try it! http://webhosting.yahoo.com/ps/sb/
---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match
--------------------
Andrew Rawnsley
President
The Ravensfield Digital Resource Group, Ltd.
(740) 587-0114 www.ravensfield.com
---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match
I figured out a function that does it. Anything to
worry about performance-wise? Right now, there's not
more than 5 levels between any child and top-most
parent.
----------
create or replace function get_parent_nodes2 (
int
) returns setof nodes
as '
declare
pParentID alias for $1;
rNode nodes;
begin
select into rNode * from nodes where id = pParentID;
if found then
return next rNode;
while not rNode.parent_id is null loop
select into rNode * from nodes where id =
rNode.parent_id;
return next rNode;
end loop;
end if;
return;
end;
' language plpgsql;
----
--- Andrew Rawnsley <ro**@ravensfield.com> wrote: Couple of ways to do it. One is to use the hierarchical query patch that mimics Oracle's CONNECT BY syntax at http://www.brasileiro.net/postgres/c...ne-recipe.adp? recipe_id=19490.
Another way is to use a nested set model, described at http://www.geocrawler.com/archives/3.../10/0/6961775/, which is an extract from the book SQL For Smarties by Joe Celko.
On Feb 2, 2004, at 4:54 PM, CSN wrote:
I have a table with these columns:
id, node, parent_node_id
The top-most nodes would have a parent_node_id of NULL. Is it possible to get a node, and all its parent nodes, in a single query?
For example, a node might be:
books > computers > databases > oss > postgres
and the rows fetched would be:
1,books,NULL 2,computers,1 3,databases,2 4,oss,3 5,postgres,4
TIA, CSN __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free web site building tool. Try it! http://webhosting.yahoo.com/ps/sb/
---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match --------------------
Andrew Rawnsley President The Ravensfield Digital Resource Group, Ltd. (740) 587-0114 www.ravensfield.com
__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free web site building tool. Try it! http://webhosting.yahoo.com/ps/sb/
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to ma*******@postgresql.org so that your
message can get through to the mailing list cleanly This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: replace-this-with-my-name |
last post by:
Hi.
How do I return a string containing an entire menu-tree from a
recursive function?
Here is my current recursive function:
function page_tree( $_i ){
//Call global mysql connection...
|
by: Perttu Pulkkinen |
last post by:
I need to find toplevel image categories and a) number of images directly in
them and b) number of subcategories directly in those topcategories. In
toplevel image categories "icat_parent_id IS...
|
by: Rodusa |
last post by:
I am having problem to apply updates into this function below. I tried
using cursor for updates, etc. but no success. Sql server keeps telling
me that I cannot execute insert or update from inside...
|
by: Steven Burn |
last post by:
..:: The Specs:
MS Access 2000 (host charges extra for SQL/MySQL)
MS Windows Server 2003 (prod) / MS XP SP1 (dev)
..:: The setup:
The database has been setup with two tables;
tblDownloads
|
by: Vincenzino |
last post by:
Hi, I have some problem in using SQL3 recursive queries on DB2
database system (8.1 and 8.2 UDB).
I need to compute the transitive closure of a (possibly) ciclic graph
using SQL3 on DB2.
I MUST...
|
by: Dennis Haney |
last post by:
Hi
As far as I can tell, the pull_up_IN_clauses does not optimize
recursively. Am I totally misguided here?
Index: plan/subselect.c...
|
by: NatRoger |
last post by:
Hi,
We are using DB2 V7 (MVS) in our shop, which dont have the luxury of
the 'WITH clause' - CTE support to accomplish recursive queries.
Here is my problem -
Table1
From-ID To-ID
A1 ...
|
by: Jim Devenish |
last post by:
I have a table named StockItems with field:
StockItemID
QuantityInStock
I am creating assemblies of stock items and have another table named
StockItemAssemblies with fields:...
|
by: srinit |
last post by:
hi
i have a table like
col1 col2 col3 col4
35 R 0 0
36 W 1 35
37 R 0 0
38 W 2 35,36
I am giving...
|
by: Pivot_Tables |
last post by:
Hi,
I have created a recursive SQL Query in DB2 and it works fine until
some point in the tree where the data gets into infinite loop. Below
are some sample data from my relationship table.
...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: ryjfgjl |
last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
| |