蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 http://www.lslnet.com 2006年8月25日 8:28

[ASP&SQL]这段查询该如何写?

有USER表,字段如下:
ID         代理人ID        数字型
REID     上级代理人ID   数字型
NAME    代理人姓名     文本型

ID   REID   NAME
1      0    张三
2      1    李四
3      1    王五
4      2    赵六
5      2    孙七
6      4    钱八
.      .     .
.      .     .
.      .     .

想查询属于张三的下级代理李四、王五,以及张三下级代理的下级代理赵六和孙七,这段查询不知该如何写好呢?

似乎问题不难,可就是想不出来``郁闷了``

别沉咯``

:(

:D想不到我的问题这么难```

第一个:
SQL="SELECT * FROM USER WHERE REID="&Conn.ExeCute("SELECT ID FROM USER WHERE NAME='张三'")(0)
rs.open SQL,Conn,1,1
第二个我觉得应该要用到循环的
先在第一个的基础上然后用下面的
SQL="SELECT * FROM USER WHERE "
For i=1 to rs.RecordCount
    IF i<rs.RecordCount Then
        SQL=SQL&" REID="&rs("ID")&" OR"
    Else
        SQL=SQL&" REID="&rs("ID")
    End IF
Next
rs.open SQL,Conn,1,1

谢谢回答,我试试看``

下级代理
select NAME from [USER] where REID=(select top 1  ID from [USER] where NAME='张三')

下级代理的下级代理

select NAME from [USER] where REID in (select  ID from [USER] where  REID=(select  ID from [USER] where  NAME='张三'))

下级代理和下级代理的下级代理
select NAME from [USER] where REID in (select top 1  ID from [USER] where NAME='张三',select  ID from [USER] where  REID=(select  ID from [USER] where  NAME='张三'))

查看一下递归算法,不要老是讨代码,自己学不到东西的

楼上教训的是,虚心使人进步``:D

感谢楼上的楼上朋友的解答``;)




Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com