三张表:
1,歌曲表:ID,种类ID
2,种类表:ID,种类名
2,评分表:ID,歌曲ID,分数现在的需求:要找出某一类歌的前十名,给怎样写呀?
如:要查英文歌排名(根据分数排)前十的;

解决方案 »

  1.   

    select a.ID, a.歌曲名, b.种类名, c.分数
        from 歌曲表 as a, 种类表 as b, 评分表 as c
        where a.种类ID = b.ID And a.ID = c.歌曲ID
        order by c.分数 [DESC/ASC]
      

  2.   

    select a.ID, a.歌曲名, b.种类名, c.分数
        from 歌曲表 as a, 种类表 as b, 评分表 as c
        where a.种类ID = b.ID And a.ID = c.歌曲ID
        order by c.分数 [DESC/ASC]
        Limit 10;
      

  3.   


    SELECT a.* FROM 歌曲表 a,种类表 b,评分表 c
    WHERE a.种类ID=b.ID AND a.ID=c.歌曲ID AND b.种类名=英文歌
    ORDER BY c.分数 DESC前十只要在Query接口设置setFirstResult(0),setMaxResults(10)
      

  4.   


    ELECT c.* FROM 歌曲表 a,种类表 b,评分表 c
    WHERE a.种类ID=b.ID AND b.种类名=英文歌 AND c.歌曲ID=a.ID
    ORDER BY c.分数 DESC
      

  5.   


    ELECT c.* FROM 歌曲表 a,种类表 b,评分表 c
    WHERE a.种类ID=b.ID AND b.种类名=英文歌 AND c.歌曲ID=a.ID
    ORDER BY c.分数 DESC
    limit 10