树查询

district_upper 为父节点id,

/**从数据'夏津县'的id开始,根据他的district_upper找到以district_upper作为id的数据也就是找到他的父亲,查出所有的父级的数据*/
select t.id, t.district_name, t.district_upper
  from itcpn_district t
 start with id =
            (select id from itcpn_district where district_name = '夏津县')
connect by prior district_upper = id;





/***从数据'山东省'的id开始,根据山东省的id找到以它作为父节点district_upper的数据,也就是找到他的孩子,查出所有的子级的数据*/
select t.id, t.district_name, t.district_upper
  from itcpn_district t
 start with id =
            (select id from itcpn_district where district_name = '山东省')
connect by district_upper = prior id;





查询顶级父节点:
select t.id, t.district_name, t.district_upper
  from itcpn_district t 
  where t.district_upper is null 
 start with id =
            (select id from itcpn_district where district_name = '夏津县')
connect by prior district_upper = id;






学习参考:http://wentao365.iteye.com/blog/606009



猜你喜欢

转载自wj196.iteye.com/blog/1555389