每个类别仅选择一行

时间:2013-07-30 12:58:06

标签: mysql

好的我有一个包含数据的siple表:

id  cat_id  title  (with random values)

1    1       test  
2    1       tstt              
3    3       tewt           
4    2       4324            
5    3       rterter  

现在,我需要创建一个查询,每个类别只选择一个原始数据(cat_id) (可能具有最低ID并按cat_id排序)

所以结果应该是:

1    1     test                  
4    2     4324                              
3    3     tewt                   

2 个答案:

答案 0 :(得分:6)

使用GROUP BY

SELECT MIN(id), cat_id, title FROM table GROUP BY cat_id

答案 1 :(得分:2)

SELECT  a.*
FROM    tableName a
        INNER JOIN
        (
            SELECT  cat_id, MIN(id) id
            FROM    tableName
            GROUP   BY cat_id
        ) b ON a.cat_id = b.cat_id AND
                a.id = b.id
ORDER   BY a.cat_id