|
蓝森林 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
感谢楼上的楼上朋友的解答``;) |
|