2011-10-05 86 views
0

選擇最新一個從每個類別

id | cat_id | name | date 
------------------------------------ 
1 | 1  | suzy | 2011-09-15 
2 | 2  | andy | 2011-10-01 
3 | 1  | dony | 2010-12-25 
4 | 3  | harry | 2010-01-05 
5 | 2  | matty | 2011-06-01 
6 | 3  | samy | 2010-11-02 
7 | 1  | honey | 2011-10-03 

如何選擇,如果我想要得到這樣的:

cat_id | id | 
------------- 
1 | 7 | 
2 | 2 | 
3 | 6 | 
+0

請您詳細說明一下,您是否想要基於日期字段的最新記錄? –

+0

是的。對不起,如果我沒有更清楚。我已經從@MarceloCantos得到了答案。 – dewara

+0

確保您接受答案。 –

回答

1
SELECT cat_id, id 
    FROM mytable t 
WHERE NOT EXISTS (
     SELECT * 
      FROM mytable 
     WHERE cat_id = t.cat_id 
      AND date > t.date 
     ) 
+0

謝謝,它的工作原理。 – dewara

0
SELECT cat_id, id 
FROM (SELECT cat_id, name 
     FROM table 
     ORDER BY date DESC) AS h 
GROUP BY cat_id 
ORDER BY cat_id ASC 

更換table

0

試試看s查詢 -

SELECT c1.cat_id, c1.id FROM catalog c1 
    JOIN (SELECT cat_id, MAX(date) last_date FROM catalog GROUP BY cat_id) c2 
    ON c1.cat_id = c2.cat_id AND c1.date = c2.last_date; 
+0

'on子句'中的未知列'c1.cat_id' – dewara

+0

是的,出現錯誤。我修好了。 – Devart