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
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;
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
select name,time,content,@n as num from message order by time limit 1;