t_user: userid,username
f_feed:id,userid,content,createdate

解决方案 »

  1.   

    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;
      

  2.   

    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
      

  3.   

    试试看:
    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;
      

  4.   

    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;
      

  5.   

    我这个写错了,用INNER JOIN,不应该是LEFT JOIN
      

  6.   

    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;
      

  7.   

    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