有一个表: shop_area    是一个省 市 县 3级区域表
 area_id(区域id)  area_name(区域名)   superid(-1 代表第一级省, 跟area_id关联 市 或 县)  is_leaf 是否有子问题:  怎么查出一个省下面所有关联的市  和 市下面关联的县 需要对应...          请求大侠们指点!!! 

解决方案 »

  1.   

    这个属于SQL中的层次查询,你可以搜索一下相关的资料。
    1. shop_area 表里需要具有体现层次的表列(supper_id和area_id)。
    2. 使用伪列LEVEL返回层次。
    3.
    select lpad(' ',3*(LEVEL-1))||area_name as  area_name
    from shop_area 
    start with superid =-1 (省级)
    connect by superid = prior area_id
      

  2.   

    select tb.* ,
    connect_by_isleaf is_leaf     --叶子
    from shop_area 
    start with superid=-1 
    connect by prior superid=area_id
      

  3.   

    select shop_area.* ,
    connect_by_isleaf is_leaf     --叶子
    from shop_area 
    start with superid=-1 
    connect by prior superid=area_id
      

  4.   

    可以使用树查询,
    参考:http://www.2cto.com/database/201109/106448.html
      

  5.   

    select shop_area.* ,
    connect_by_isleaf is_leaf     --叶子
    from shop_area 
    start with superid=-1 
    connect by prior superid=area_id