我通过如下语句,得到数据
SELECT v.ID,v.VERSION_ID,v.TV_ID,a.VEDIO_ORDER,a.TV_NAME FROM TV_APPLICATION a, TV_VER_RELATION v
where a.TV_ID=v.TV_ID and a.SUBJECT_ID=13871 ORDER BY v.TV_ID,v.VERSION_ID desc,a.VEDIO_ORDER asc ;
ID    VERSION_ID   TV_ID  ORDER        NAME
113626 3 49136 1 秘密花园第1集
110457 2 49136 1 秘密花园第1集
110456 1 49136 1 秘密花园第1集
113627 3 49137 2 秘密花园第2集
110460 2 49137 2 秘密花园第2集
110459 1 49137 2 秘密花园第2集
113772 3 50283 3 秘密花园第3集
113760 2 50283 3 秘密花园第3集
113759 1 50283 3 秘密花园第3集
114081 3 50370 4 秘密花园第4集
114029 2 50370 4 秘密花园第4集
114028 1 50370 4 秘密花园第4集
122794 3 53365 7 秘密花园第7集
122793 2 53365 7 秘密花园第7集
122792 1 53365 7 秘密花园第7集
123846 3 53587 8 秘密花园第8集
123462 2 53587 8 秘密花园第8集
123461 1 53587 8 秘密花园第8集
125849 3 54364 9 秘密花园第9集
125796 2 54364 9 秘密花园第9集
125795 1 54364 9 秘密花园第9集
126449 3 54427 10 秘密花园第10集
125965 2 54427 10 秘密花园第10集
125964 1 54427 10 秘密花园第10集而我想找出的是相同TV_ID下,VERSION_ID最大的那一条记录,
最后得到的十条记录,而不是30条,不知道怎么写

解决方案 »

  1.   

    把create table 和insert 语句贴出来
      

  2.   


    select * from TV_APPLICATION t 
    where not exists(select 1 from TV_APPLICATION where TV_ID=t.TV_ID
    and VERSION_ID>t.VERSION_ID)
      

  3.   

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

  4.   


    select * from (SELECT v.ID,v.VERSION_ID,v.TV_ID,a.VEDIO_ORDER,a.TV_NAME FROM TV_APPLICATION a, TV_VER_RELATION v
    where a.TV_ID=v.TV_ID and a.SUBJECT_ID=13871 ORDER BY v.TV_ID,v.VERSION_ID desc) as t group by t.TV_ID麻烦试下
      

  5.   

    select * from TV_APPLICATION a 
    where not exists(select 1 from TV_APPLICATION where a.TV_ID=TV_ID
    and a.VERSION_ID<VERSION_ID)