我有一个表A。A里面字段为userID 会员ID(索引)
date 日期(索引)
time 时间(索引)
count 使用次数有一个表user。userId 会员ID(唯一索引)
name 会员姓名
num 当天使用次数
numAll 总使用次数
time 注册时间(索引)
date 注册日期(索引)用户使用终端,使用的次数在终端本地也保存。每天将这统计的次数发到服务器。注意:一天只发1次,最多2次。我采用的方案是:num字段保存当天的统计次数,如果不是同一天(可能是第二天,或第三天了),将num的次数转存到表A中。现在表的数据如下:user表10000 小李 4 4 2012-10-1 xx:xx:xx 2012-10-1
10001 小王 4 14 2012-10-2 xx:xx:xx 2012-10-2
10002 小开 4 34 2012-10-3 xx:xx:xx 2012-10-3B表10001 2012-10-1 02:02:02 2012-10-1 2
10001 2012-10-2 02:02:02 2012-10-2 2
10001 2012-10-3 02:02:02 2012-10-3 2
10001 2012-10-10 02:02:02 2012-10-10 2
10001 2012-10-20 02:02:02 2012-10-20 2现在我要统计:30天内的注册用户和老用户显示的表结构如下:(如果今天是2012-11-1)日期 注册用户 老用户
2012-11-1
2012-10-31
2012-10-30即日期是从今天开始计算,每一天都有。如果那一天没有注册用户,那么那一栏中对应的注册用户数为0请问我该如何实现这功能?我目前的解决方案是:通过PHP循环的方式。假如30天内的情况,我就循环30次。第一次都通过SQL语句,结合计算的当天日期来读取数据。虽然实现功能,但我想,如果数据量大的情况下,比如100万或500万数据,这样的效率岂不是太低了。
如果用一个sql,比如:下面是统计注册用户。
SELECT count(userId),date FROM user WHERE date > DATE_SUB(CURDATE(),INTERVAL 30 DAY) group by date这样,如果那天没有注册用户,那么那一天的日期就不会显示。比如2012-10-1有注册用户。2012-10-2号没有人注册。2012-10-3号有人注册了。那么用上面的sql,就会显示:2012-10-1
2012-10-3而2012-10-2号就没有这一行了。
大家有什么好的方法吗。希望能得到帮助。
date 日期(索引)
time 时间(索引)
count 使用次数有一个表user。userId 会员ID(唯一索引)
name 会员姓名
num 当天使用次数
numAll 总使用次数
time 注册时间(索引)
date 注册日期(索引)用户使用终端,使用的次数在终端本地也保存。每天将这统计的次数发到服务器。注意:一天只发1次,最多2次。我采用的方案是:num字段保存当天的统计次数,如果不是同一天(可能是第二天,或第三天了),将num的次数转存到表A中。现在表的数据如下:user表10000 小李 4 4 2012-10-1 xx:xx:xx 2012-10-1
10001 小王 4 14 2012-10-2 xx:xx:xx 2012-10-2
10002 小开 4 34 2012-10-3 xx:xx:xx 2012-10-3B表10001 2012-10-1 02:02:02 2012-10-1 2
10001 2012-10-2 02:02:02 2012-10-2 2
10001 2012-10-3 02:02:02 2012-10-3 2
10001 2012-10-10 02:02:02 2012-10-10 2
10001 2012-10-20 02:02:02 2012-10-20 2现在我要统计:30天内的注册用户和老用户显示的表结构如下:(如果今天是2012-11-1)日期 注册用户 老用户
2012-11-1
2012-10-31
2012-10-30即日期是从今天开始计算,每一天都有。如果那一天没有注册用户,那么那一栏中对应的注册用户数为0请问我该如何实现这功能?我目前的解决方案是:通过PHP循环的方式。假如30天内的情况,我就循环30次。第一次都通过SQL语句,结合计算的当天日期来读取数据。虽然实现功能,但我想,如果数据量大的情况下,比如100万或500万数据,这样的效率岂不是太低了。
如果用一个sql,比如:下面是统计注册用户。
SELECT count(userId),date FROM user WHERE date > DATE_SUB(CURDATE(),INTERVAL 30 DAY) group by date这样,如果那天没有注册用户,那么那一天的日期就不会显示。比如2012-10-1有注册用户。2012-10-2号没有人注册。2012-10-3号有人注册了。那么用上面的sql,就会显示:2012-10-1
2012-10-3而2012-10-2号就没有这一行了。
大家有什么好的方法吗。希望能得到帮助。
我显示的样子为一个表格日期 新用户 老用户
我如何将两个表的数据合并到一个结果集中。然后遍历显示出来。比如。现在一共有三个日期数据新用户2012-11-11 5
2012-11-12 6
2012-11-12 7老用户
2012-11-11 1
2012-11-12 2
我想要显示日期 新用户 老用户
2012-11-11 5 1
2012-11-12 6 2
2012-11-12 7 0要是能帮我解决这个问题,我再加分。感谢老大再次帮我解决。你有QQ吗。要不我远程给你看一下。我QQ:55967659