补充,如果user_id的最近的时间(get_time),所对应的get_name 不是a001,则不取出来

解决方案 »

  1.   

    要求结果是:
    user_id                         get_time                       get_name
    1001                   2014-07-01 04:34:00               a001
    1002                   2014-07-01 02:23:00               a001  
    1003                   2014-07-02 23:19:00               a001 
      

  2.   

    也就是说,按用户找最大的get_time ,所对应的get_name 是a001的user_id
      

  3.   

    按照你的说法应该是 select * from History where get_name = "a001" order by  get_time limit0,?
      

  4.   

     select * from History where get_name = "a001" order by  get_time desc limit0,?
      

  5.   

    参考下贴中的多种方法http://blog.csdn.net/acmain_chm/article/details/4126306
    [征集]分组取最大N条记录方法征集,及散分....
      

  6.   

    示例代码:
    create table teb
    (
       user_id int,
     get_time datetime,
     get_name varchar(10) 
    )
    insert into teb select 1001,'2014-07-01 04:34:00','a001';
    insert into teb select 1002,'2014-07-01 02:23:00','a001';
    insert into teb select 1001,'2014-06-30 14:51:00','a002';
    insert into teb select 1001,'2014-06-30 20:12:00','a001';
    insert into teb select 1002,'2014-06-29 15:04:00','a003'; 
    insert into teb select 1003,'2014-07-02 23:19:00','a001';
    insert into teb select 1003,'2014-07-01 16:22:00','a001';select user_id,max(get_time),get_name from teb where get_name='a001' group by user_id,get_name
      

  7.   

    筛选用户条件: 用户 ,离现在最近的get_time,所对应的get_name = "a001"
      

  8.   

    select * from tb t where not exists(select 1 from tb where user_id=t.user_id and get_time>t.get_time)
    and t. get_name=' a001'
      

  9.   

    1.取最大时间的那条(max)
    2.get_name = a001
    3.order by 用户id