mysql group by 組內排序


有數據表 comments
------------------------------------------------
id | newsID | comment theTime |
------------------------------------------------
| 1  |        1      |         aaa    |     11       |
------------------------------------------------
| 2  |        1      |         bbb    |     12       |
------------------------------------------------
| 3  |        2      |         ccc     |     12       |

------------------------------------------------

newsID是新聞ID,每條新聞有多條評論comment,theTime是發表評論的時間

現在想要查看每條新聞的最新一條評論:

 

select * from comments group by newsID 顯然不行

 

select * from comments group by newsID order by theTime desc 是組外排序,也不行

 

下面有兩種方法可以實現:

(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)

 

轉自:http://blog.csdn.net/shellching/article/details/8292338


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM