有表tab1、tab2,tab1用来记录分类数据,tab2用来记录分类的数据:
Tab1:
id name
1 音乐
2 视频
3 软件
………表tab2
Id tid name size path uploadtime
1 1 name1 0.5 upload/music/name1.mp3 2007-01-17 08:43:21
2 3 winrar 3.5 upload/soft/winrar.exe 2007-01-17 08:50:32
3 3 flashfxp 15.0 upload/soft/flashfxp.rar 2007-01-17 09:03:33
4 2 see 50.2 upload/video/see.rm 2007-01-17 10:01:22
………..
像这样的表中,我想在查询表tab2时,按分类(tab1中的分类)分组,每个分类只显示一条,并且这条记录要是该分类的最新的记录,即最后插入的记录。
如果用如下语句:
SELECT DISINCT tid,id,name,size,path uploadtime FROM tab2 GROUP BY tid ORDER BY id DESC;
似乎只是显示每个分类的第一个记录,即最先插入的记录,请问应该如何才能如上面要求输出呢?
Tab1:
id name
1 音乐
2 视频
3 软件
………表tab2
Id tid name size path uploadtime
1 1 name1 0.5 upload/music/name1.mp3 2007-01-17 08:43:21
2 3 winrar 3.5 upload/soft/winrar.exe 2007-01-17 08:50:32
3 3 flashfxp 15.0 upload/soft/flashfxp.rar 2007-01-17 09:03:33
4 2 see 50.2 upload/video/see.rm 2007-01-17 10:01:22
………..
像这样的表中,我想在查询表tab2时,按分类(tab1中的分类)分组,每个分类只显示一条,并且这条记录要是该分类的最新的记录,即最后插入的记录。
如果用如下语句:
SELECT DISINCT tid,id,name,size,path uploadtime FROM tab2 GROUP BY tid ORDER BY id DESC;
似乎只是显示每个分类的第一个记录,即最先插入的记录,请问应该如何才能如上面要求输出呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货