一个表有四个字段:
user_id    user_name   recommend_user_id  user_age
1           张三                            35    
2           王六             1               32
3           李四              2              21
4           郑七              3              18
5           赵四              4               45
user_id 为用户ID     user_name用户名      recommend_user_id 推荐人的用户名ID    user_age用户的年龄其中recommend_user_id这个字段参照user_id这个字段没有推荐人的话,可以为空,表中的数据显示的意思是:
1直接推荐了2,2直接推荐了3,3直接推荐了4,4直接推荐了5,2,3,4,5都是1间接推荐。当然这只是随便写的五条记录,
那么现在的问题是:
如果在这一张表中求有1直接推荐和由1间接推荐的用户的个数为是多少,这个SQL如何去写,请赐教!

解决方案 »

  1.   

    这种设计要用到递归查询,性能很差。建议加一个字段,存储推荐系列,以user_id=5的记录为例,假如推荐系列字段为path,则path=1,2,3,4,5,自己的前一ID则为直接推荐,否则为间接推荐,像链表结构,其性能可大大提高。如果检索user_id=1的推荐个数,只需要在SQL上加上条件:path like '1,%'
      

  2.   

    你有技术问题可以到这个QQ群38615496里看看。里面有很多高手。很热心的。不过好像只加搞java的