आपको सभी प्रबंधकों को लाने के लिए पहले पेड़ को पार करना होगा और फिर सभी कर्मचारियों को लाने के लिए नीचे जाना होगा:
select level, employee_id, last_name, manager_id ,
connect_by_root employee_id as root_id
from employees
connect by prior employee_id = manager_id -- down the tree
start with manager_id in ( -- list up the tree
select manager_id
from employees
connect by employee_id = prior manager_id -- up the tree
start with employee_id = 101
)
;
देखें http://www.sqlfiddle.com/#!4/d15e7/18ए>
संपादित करें:
यदि दिया गया नोड रूट नोड भी हो सकता है, तो दिए गए नोड को पैरेंट नोड्स की सूची में शामिल करने के लिए क्वेरी का विस्तार करें:
गैर-रूट नोड के लिए उदाहरण:
select distinct employee_id, last_name, manager_id
from employees
connect by prior employee_id = manager_id -- down the tree
start with manager_id in ( -- list up the tree
select manager_id
from employees
connect by employee_id = prior manager_id -- up the tree
start with employee_id = 101
union
select manager_id -- in case we are the root node
from employees
where manager_id = 101
)
;
रूट नोड के लिए उदाहरण:
select distinct employee_id, last_name, manager_id
from employees
connect by prior employee_id = manager_id -- down the tree
start with manager_id in ( -- list up the tree
select manager_id
from employees
connect by employee_id = prior manager_id -- up the tree
start with employee_id = 100
union
select manager_id -- in case we are the root node
from employees
where manager_id = 100
)
;
फिडल http://www.sqlfiddle.com/#!4/d15e7/32 पर