表 myTable
字段一 ID   字段二 Username   字段三 NextName(Username推荐的用户)
       1             name1            name2
       2             name2            name3
                     name3            name4
                     name2            name5
                     name3            name6
                     name1            name7
会员一 推荐一个直接用户获得10个游戏积分
会员一的直接会员(name2)  推荐一个直接用户会员一获得 3个游戏积分会员二获得10积分
会员二的直接会员(name3)推荐的会员 会员二获得3个积分 会员一获得1个游戏积分我要把Username 显示在 DROPDOWNLIST中
例如 会员 name1登陆
会员一的直接会员是dropdownlist1显示 name2
                                    name7
会员一的二级会员是dropdownlist1显示 name3
                                    name5
会员一的三级会员是dropdownlist1显示 name4
                                    name6

解决方案 »

  1.   

    ----------------------------------------------------------------
    -- Author  :fredrickhu(小F,向高手学习)
    -- Date    :2010-04-17 19:06:10
    -- Version:
    --      Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) 
    -- Nov 24 2008 13:01:59 
    -- Copyright (c) 1988-2005 Microsoft Corporation
    -- Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3)
    --
    ----------------------------------------------------------------
    --> 测试数据:[tb]
    if object_id('[tb]') is not null drop table [tb]
    go 
    create table [tb]([ID] int,[Username] varchar(5),[NextName] varchar(5))
    insert [tb]
    select 1,'name1','name2' union all
    select 2,'name2','name3' union all
    select 3,'name3','name4' union all
    select 4,'name2','name5' union all
    select 5,'name3','name6' union all
    select 6,'name1','name7'
    --------------开始查询--------------------------
    ;with f as
    (
    select * from [tb] where Username='name2'
    union all
    select a.* from [tb] a, f b where a.Username=b.NextName
    )
    select Username,NextName from f
    ----------------结果----------------------------
    /* Username NextName
    -------- --------
    name2    name3
    name2    name5
    name3    name4
    name3    name6(4 行受影响)
    */