日期:2014-05-16  浏览次数:20710 次

急急急急急急,在线等,求一mysql查询语句 ,最后70分奉上
Java code

public class User{
//数据库表明也是User
private String userId;//id
private String userName;//用户名
private Date cd_time;注册时间
private User inviteUser; //邀请人(填的实际上邀请人的ID【外键】)
}





Java code

有如下数据,注册时间没有写,就是系统当前时间

1  张一  null
2  张二  null
3  张三  null
4  张四  null
5  张五  1    -------------表示张五是张一邀请来的
6  张六  2    -------------表示张刘是张二邀请来的
7  张七  3
8  张八  4 
9  张九  5
10 王一  6
11 王二  6
12 王三  6
13 王四  1
14 王五  13


 


需求是,按时间顺序,查询出前十条
像这样:
张一,2 张一邀请了2人
张二,1 张二邀请了1人
张三,1
...
张五,1
张六,3 张六邀请了3人
王四,1 王四邀请了1人








------解决方案--------------------
select a.userName, count(b.userId)
from User a left join User b on a.userId = b.inviteUser
group by a.userName