2011-08-08 35 views
3

我有一個表例如posts利用這種結構和數據:請求的SQL查詢

ID | CatID | SubCatID | Title 
----------------------------- 
1 | 84 | 85 | Test 1 
2 | 84 | 86 | Test 2 
3 | 84 | 87 | Test 3 
4 | 84 | 85 | Test 4 
5 | 84 | 85 | Test 5 
6 | 84 | 86 | Test 6 

我想1個查詢由SubCatID返回行該組,並返回具有MaxID從每個SUBCAT行

這意味着我想回到這個名單:

ID | CatID | SubCatID | Title 
-------------------------------- 
5 | 84 | 85 | Test 5 
6 | 84 | 86 | Test 6 
3 | 84 | 87 | Test 3 

回答

1
select t1.* from table as t1 
inner join (
select max(id) as greater from table group by subcatid) as t2 
on t1.id = t2.greater 
+0

非常感謝:x –

2
SELECT t.ID, t,CatID, t.SubCatID, t.Title 
    FROM YourTable t 
     INNER JOIN (SELECT MAX(ID) AS MaxID, CatId, SubCatID 
         FROM YourTable 
         GROUP BY CatId, SubCatID 
        ) q 
      ON t.CatId = q.CatId 
       AND t.SubCatID = q.SubCatID 
       AND t.ID = q.MaxID 
+0

非常感謝:x –