mysql group by組內排序
有數據表 comments
------------------------------------------------
| id | newsID | comment | theTime |
------------------------------------------------
| 1 | 1 | aaa | 11 |
------------------------------------------------
| 2 | 1 | bbb | 12 |
------------------------------------------------
| 3 | 2 | ccc | 12 |
------------------------------------------------
www.2cto.com
newsID是新聞ID,每條新聞有多條評論comment,theTime是發表評論的時間
現在想要查看每條新聞的最新一條評論:
select * from comments group by newsID 顯然不行
select * from comments group by newsID order by theTime desc 是組外排序,也不行
下面有兩種方法可以實現:
www.2cto.com
(1)
selet tt.id,tt.newsID,tt.comment,tt.theTime from(
select id,newsID,comment,theTime from comments order by theTime desc) as tt group by newsID
(2)
select id,newsID,comment,theTime from comments as tt group by id,newsID,comment,theTime having
theTime=(select max(theTime) from comments where newsID=tt.newsID)