Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Efficiently getting top level parent in hierarchy with connect by

Re: Efficiently getting top level parent in hierarchy with connect by

From: DA Morgan <damorgan_at_psoug.org>
Date: Thu, 12 Oct 2006 08:44:34 -0700
Message-ID: <1160667870.880382@bubbleator.drizzle.com>


Mike C wrote:
> I have a query on a simple table that has parent child relationships.
> I need a query to get the highest level parent for a child. Is there a
> simpler way to do this than what I have which repeats the query to get
> the max level?
>
> select parent_id,level from tbl_parent_child g
> WHERE level=(SELECT MAX(level) FROM tbl_parent_child start with
> child_id = 139527170 connect by child_id = prior parent_id )
> start with child_id = 139527170 connect by child_id = prior parent_id

Look at the syntax for CONNECT BY in Morgan's Library at www.psoug.org. Look at the START WITH demo and it's use with CONNECT BY PRIOR. Also look at CONNECT_BY_ROOT and the LEVEL pseudocolumn.

That is not to say they are going to be more efficient but rather that they are options to explore.

-- 
Daniel A. Morgan
University of Washington
damorgan_at_x.washington.edu
(replace x with u to respond)
Puget Sound Oracle Users Group
www.psoug.org
Received on Thu Oct 12 2006 - 10:44:34 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US