同一个表中取出不同分类的前10条记录。
例如一个学生表,每个学生在不同的班级,现在想取出每个班级的前十个学生,用一句sql语句怎么写呀。好像Union可以实现,但是,我的班级不确定是几个呀

解决方案 »

  1.   

    select *
    from 同一个表 a
    where 10>=(select count(*) from 同一个表 where a.班级=班级 and a.score<score)
      

  2.   

    谢谢你的回答,但是好像不对呀,我真正的需求是:
    我有一张公司表company,每一个公司的分类为不同的cate,分类的个数未知,需要查库才知道,我想列出每一个公司分类下的前十个公司的名字company_name,用created排序。
      

  3.   

    select 
      *
    from 
      company y
    where 
      (select count(1) from company where cate=t.cate and cteated>t.created)<=10
      

  4.   

    我的想法,不过效率是个问题SELECT DISTINCT a.*
    FROM dis a INNER JOIN
    (
    SELECT SUBSTRING_INDEX(GROUP_CONCAT(d.name),',',2) AS NAME
    FROM dis d
    GROUP BY d.version
    ) c
    ON c.name REGEXP a.name
      

  5.   

    没看回贴,ACMAIN_CHM的语句好啊~~~
      

  6.   

    以上几种写法差不多了,就是还没有分类,再形成如下格式就好了呀:
    $row = array(
        '1' => array(
                    0 => array('name' => 'aaaa', 'cate' => 1,
                    1 => array('name' => 'bbbb', 'cate' => 1,
                    2 => array('name' => 'cccc', 'cate' => 1,
                    ....
                    9 => array('name' => 'jjjj', 'cate' => 1,
                ),
        '2' => array(
                    0 => array('name' => 'aaaa', 'cate' => 2,
                    1 => array('name' => 'bbbb', 'cate' => 2,
                    2 => array('name' => 'cccc', 'cate' => 2,
                    ....
                    9 => array('name' => 'jjjj', 'cate' => 2,
                ),
        ....);
      

  7.   

    以上几种写法差不多了,就是还没有分类,再形成如下格式就好了呀:
    $row = array(
        '1' => array(
                    0 => array('name' => 'aaaa', 'cate' => 1,
                    1 => array('name' => 'bbbb', 'cate' => 1,
                    2 => array('name' => 'cccc', 'cate' => 1,
                    ....
                    9 => array('name' => 'jjjj', 'cate' => 1,
                ),
        '2' => array(
                    0 => array('name' => 'aaaa', 'cate' => 2,
                    1 => array('name' => 'bbbb', 'cate' => 2,
                    2 => array('name' => 'cccc', 'cate' => 2,
                    ....
                    9 => array('name' => 'jjjj', 'cate' => 2,
                ),
        ....);
      

  8.   

    程序能实现分类呵呵。要是再加一个条件,只选则地区是北京的呢?这个city='北京' 放哪呢?再问句:这种sql语句的写法效率怎么样呀?