表结构为 ID,userID,cont,time查询当前用户组A(101,102,103)中,每个用户最新的300条记录。

解决方案 »

  1.   

    select * from table where ID in (101,102,103) order by time limit 0,300;
      

  2.   


    select t.* from tb t where time in (select top 300 time from tb where userid = t.userid order by time desc)
      

  3.   

    SELECT B.* FROM TB A CROSS APPLY(SELECT TOP(300)* FROM TB B WHERE A.userID=B.userID ORDER BY TIME DESC) B
      

  4.   

    select t.* 
    from tb t 
    CROSS APPLY (select top 300 [time] from tb where userid = t.userid order by [time] desc)
    WHERE userid IN (101,102,103)
    小猜一下
      

  5.   

    select t.* 
    from tb t 
    CROSS APPLY (select top 300 [time] from tb where userid = t.userid order by [time] desc)TT
    WHERE userid IN (101,102,103)晕!!!
      

  6.   

    谢谢各位,不过开始忘记说明了,我现在用的是mysql 由于mysql中没有top,而使用limit会报错
      

  7.   

    select t.* from tb t 
    where (select count(*) from tb where userid = t.userid and id>=t.id)<=300