有一个message表,用于存放用户发的消息,有三个字段name, time, content 分别记录:用户名,时间,内容
现在要查出所有用户发出的最早(晚)的一条记录以及此用户消息总数

解决方案 »

  1.   

    try this:SELECT  t.name ,
            mi.content , --最早的消息
            ma.content , --最晚的消息
            t.mess_count
    FROM    ( SELECT    name ,
                        MAX(time) AS max_time ,
                        MIN(time) AS min_time ,
                        COUNT(*) mess_count
              FROM      message
              GROUP BY  name
            ) t
            INNER JOIN message ma ON ma.name = t.name
                                     AND ma.time = t.max_time
            INNER JOIN message mi ON mi.name = t.name
                                     AND mi.time = t.min_time
      

  2.   

    select @n:=count(*) from message where name=(select name from message order by time limit 1);
    select name,time,content,@n as num from message order by time limit 1;