数据库中group表中存储组信息。group(id,groupName,parentid)。现在知道一个组的id,如何编写函数把这个分组中的子分组id以及这个分组中可能包含的子分组的子分组的id读取出来。

解决方案 »

  1.   


    select * from group g
    start with g.parent_id = "你要查的id" connect by prior g.id = g.parent_id ;没试过哦,不晓得对不对,哈哈
      

  2.   

    你用的是oracle数据库的写法吧  应该不通用吧
      

  3.   

    查询本身和下级:
    select * from group g
    start with g.id = id connect by prior g.id = g.parent_id ;
    查询本身和上级select * from group g
    start with g.id = id connect by prior  g.parent_id = g.id ;
    ORACLE10G用法
      

  4.   

    用的mysql 这个能不能在程序里写递归函数实现呢??
      

  5.   

    可以   你每得到一条记录,就递归的调用查询哪条记录的parent_id=你得到记录的id
    不过有点麻烦 没直接用sql快
      

  6.   

    mysql我没用过,
    要在程序写递归查询,这个能实现,只是一个查询多次和数据库交互
    Map map = new HashMap();public void find(int id){
       Object obj = dao.find("select * from group where id = ?");
       map.add("parent",obj);
       findSon(obj);
    }public void findSon(Object obj){
       List list = dao.find("select * from group where parentid = " + obj.getId());
       for(Object obj1 :list){
         map.add(obj.getId(),obj1);
         findSon(obj1.getId());
       }
    }
      

  7.   

    mysql支持存储过程,可以用存储过程实现