select A.userid,count(*) as num from t_user A,f_feed B where A.userid=B.userid group by A.userid order by num desc limit 50;
select a.userid,a.username,count(*) from t_user a inner join f_feed b on a.userid=b.userid where createdate > curdate - interval 7 day group by a.userid order by 3 desc limit 50
试试看: SELECT t_user.userid,count(*) AS counts FROM t_user LEFT JOIN f_feed ON t_user.userid=f_feed.userid WHERE f_feed.createdate>=(CURRENT_TIMESTAMP() - INTERVAL 7 DAY) GROUP BY t_user.userid ORDER BY counts DESC LIMIT 0,50;
select A.userid,count(*) as num from t_user A INNER JOIN f_feed B ON A.userid=B.userid where createdate BETWEEN CURDATE()-INTERVAL 7 DAY AND CURDATE() group by A.userid order by num desc limit 50;
我这个写错了,用INNER JOIN,不应该是LEFT JOIN
select A.userid,count(*) as num from t_user A INNER JOIN f_feed B ON A.userid=B.userid where createdate BETWEEN CURDATE()-INTERVAL 7 DAY AND CURDATE() group by A.userid order by num desc limit 50;
DateTime dt = DateTime.Now; DateTime lastDay = dt.AddDays(0).Date;//当天时间 adddays()里面放的是返回的日期 负往前 正往后 DateTime pre30Day = dt.AddDays(-7).Date;//前7月时间 select sum(number)as number from table where date between lastday and pre30day order by number我喜欢这样 简单清楚 一周求时间求出不就好了 sql没测试 思路一样在前面加个top 50 ok
from t_user A,f_feed B
where A.userid=B.userid
group by A.userid
order by num desc
limit 50;
from t_user a inner join f_feed b on a.userid=b.userid
where createdate > curdate - interval 7 day
group by a.userid
order by 3 desc
limit 50
SELECT t_user.userid,count(*) AS counts
FROM t_user
LEFT JOIN f_feed ON t_user.userid=f_feed.userid
WHERE f_feed.createdate>=(CURRENT_TIMESTAMP() - INTERVAL 7 DAY)
GROUP BY t_user.userid
ORDER BY counts DESC
LIMIT 0,50;
from t_user A INNER JOIN f_feed B ON A.userid=B.userid
where createdate BETWEEN CURDATE()-INTERVAL 7 DAY AND CURDATE()
group by A.userid
order by num desc limit 50;
from t_user A INNER JOIN f_feed B ON A.userid=B.userid
where createdate BETWEEN CURDATE()-INTERVAL 7 DAY AND CURDATE()
group by A.userid
order by num desc limit 50;
DateTime lastDay = dt.AddDays(0).Date;//当天时间 adddays()里面放的是返回的日期 负往前 正往后
DateTime pre30Day = dt.AddDays(-7).Date;//前7月时间
select sum(number)as number from table where date between lastday and pre30day order by number我喜欢这样 简单清楚 一周求时间求出不就好了 sql没测试 思路一样在前面加个top 50 ok