id    pid    name
1      1      001
2      1      002
3      2      003
4      3      004
5      4      005
6      5      006
7      6      007每条记录都有一个父级id
请问怎样查询:id=n时,他包含的所有下级,
如果id=5 那么应显示5 6 7
如果id=1 那么显示以上所有的记录

解决方案 »

  1.   

    你可以先将这些东西倒到treeview中,然后采用递归查询子节点:
    procedure doSearch(tn: TTreeNode);
    var i: ingeger;    
    begin
      if nt.HasChildren then
      begin
        for i := tn.Count -1 downto 0 do doSearch(tn[i]);  
      end
      else
      begin
          //这里是你对每个节电要做的事情
      end;
    end;
      

  2.   

    你用一个SQL语句也是无法直接查到对应的数据,也是要递归调用的!
    (·¥·)