一张数据表来表示用户登录日志,包含用户名、IP、时间(datetime)等信息,一天之中随机登录0次或者N次。怎么样写sql,可以列出每天的第一次登录的信息?我能想到的是从datetime中取出日期信息然后distinct

解决方案 »

  1.   

    取出datetime中的日期信息 以下摘自 MySQL 5.1 Reference Manual
    DATE(expr) 

    Extracts the date part of the date or datetime expression expr. mysql> SELECT DATE('2003-12-31 01:02:03');
            -> '2003-12-31'[align=center]====  ====
    [/align]
      

  2.   

    select 用户名,IP,时间
    from 用户登录日志 as l
    where 时间=(select min(时间) from 用户登录日志 where 用户名=l.用户名 and DATE(时间)=DATE(.时间))[align=center]====  ====
    [/align]
      

  3.   

    select 用户名,IP,时间
    from 用户登录日志 as l
    where 时间=(select min(时间) from 用户登录日志 where 用户名=l.用户名 and DATE(时间)=DATE(l.时间))少了个l[align=center]====  ====
    [/align]
      

  4.   

    select a.用户名,a.IP,a.时间
    from 用户登录日志 as a inner join
    (select 用户名,DATE(时间) as dDay,min(时间) as minTime from 用户登录日志 group by 用户名,DATE(时间)) as b
    on a.用户名=b.用户名 and a.时间=b.minTime[align=center]====  ====
    [/align]