有数据表结构如下
   
     表名  T1 
        
        父节点     ID     名称
           0         1          省会
           1         2           城市
           2         3           长沙
           3         4            街道
     表名   T2 
          ID       姓名
          4        张三
          4        王五
     我要查询的条件为     省会     街道     得出的结果是  街道下面的人员  这条SQL怎么写,谢谢

解决方案 »

  1.   

    select 姓名 from T2 inner join T1 on T1.ID=T2.ID where T1.省会='' and T1.街道=''
      

  2.   


    with cte as
    (
    select a.父节点,a.id ,名称,0 as levl from tb a where  a.父节点='a1'---- a1为参数
    union all
    select a.父节点,a.id,名称,levl + 1 from tb a join cte on  a.父节点=cte.ID
    )
    select * from cte
      

  3.   

    select T2.name  from T2 start with T2.id=(select T1.id from T1 where T1.名称='街道') connect by prior 
    T2.id=T1.pid