数据中有以下字段
id  category title BuildDate其中 category为分类的标示,类别为 1,2,3,4
每类都有数据多条
用sql语句查询
结果限制为16条,根据category分类,每类有4条
例如查出来的是:
20 1 测试 2008-04-05
20 1 测试 2008-04-05
20 1 测试 2008-04-05
20 1 测试 2008-04-0520 2 测试 2008-04-05
20 2 测试 2008-04-05
20 2 测试 2008-04-05
20 2 测试 2008-04-0520 3 测试 2008-04-05
20 3 测试 2008-04-05
20 3 测试 2008-04-05
20 3 测试 2008-04-0520 4 测试 2008-04-05
20 4 测试 2008-04-05
20 4 测试 2008-04-05
20 4 测试 2008-04-05这样的查询,用sql语句可以实现么?
请各位大虾指教.谢谢

解决方案 »

  1.   

    每类有4条:条件是什么?
    fox example
    select a.* from tt a 
    where id in(select top 4 id from tt b where b.name=a.name)
      

  2.   

    恩……
    就是每类的多条数据中取四条(按什么排序无所谓)
    这样一共是四类,取16条用一个sql语句来实现谢谢
      

  3.   

    有,id就是,id为自动增加类型的
    谢谢
      

  4.   

    select a.* from tt a 
    where id in(select top 4 id from tt b where b.category=a.category)
    你可以试试,不知道MYSQL是否支持TOP,在JET SQL下是没有问题的
      

  5.   

    非常感谢WWWWA的回答
    可是还是不行,mysql好像不支持 top ……
    谢谢
      

  6.   

    SELECT TOP 4 ID FROM TT WHERE category=1
    这种形式是否支持
      

  7.   

    or
    select a.* from tt a 
    inner join
    (SELECT TOP 4 ID FROM TT WHERE category=1 ) b
    on a.id=b.id
    这种形式是否支持
      

  8.   

    谢谢楼上的
    mysql不支持 top 这个函数
    单用 SELECT TOP 4 ID FROM TT 
    都是不可以的没办法,我用 union 来联合了
    结贴了,谢谢大家
      

  9.   

    恩?
    晕,本来是想 WWWWA 和 WWWWB 一人五十分的
    可是,看错了,把两个人看成一个人了……
    不好意思了 WWWWA,好像结贴后就不能更改给分了