表:CREATE TABLE `impression` (
  `id` int unsigned NOT NULL auto_increment,
  `content` varchar(20) NOT NULL ,
  `time` int(10) unsigned NOT NULL ,
  `parent_id` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`),
) ENGINE=InnoDB  DEFAULT CHARSET=utf8  AUTO_INCREMENT=1 ;
是个评论表,业务需求是可以回复评论,回复的评论也插入表中,parent_id就是对应的被回复的id,只要两层关系(只能回复一次),现在的需求是取出所有的评论,还有对应的最近评论(也就是time最大的那个),
select a.id,a.content,a.time,max(b.time) as btime,b.content as bcontent 
from impression a left join impression b on a.id=b.parent_id  group by a.id order by a.id desc,
可是max(b.time)是取出来了,但是b.content和max(b.time)不是同一行数据,我想取出max(b.time)同行的content应该怎么写,雪地跪求

解决方案 »

  1.   

    select a.*
    from impression A
    where not exits (select 1 from impression where A.parent_id = parent_id and A.id<id)
      

  2.   

    参考下贴中的多种方法http://topic.csdn.net/u/20091231/16/2f268740-391e-40f2-a15e-f243b2c925ab.html
    [征集]分组取最大N条记录方法征集,及散分....
      

  3.   

    贴建表及插入记录的SQL,及要求结果出来看看
      

  4.   

    取出所有评论以及他们最近的子评论,不是只有子评论,所以要用left join ,上面的大牛可能看错了,不知道怎么写,谁能直接给出吗?
      

  5.   

    贴建表及插入记录的SQL,及要求结果出来看看