2016-02-24 54 views
2

這是包含該類型的記錄如何查找ID的最後記錄?

id | a_id | datetime 
------------------------ 
1 | 1 | 2016-01-07 15:42:14 
2 | 1 | 2016-01-08 16:42:14 
3 | 1 | 2016-01-09 17:42:14 
4 | 2 | 2016-01-07 15:42:14 
5 | 2 | 2016-01-08 16:42:14 
6 | 2 | 2016-01-09 17:42:14 
7 | 2 | 2016-01-10 18:42:14 
8 | 2 | 2016-01-11 19:42:14 

,我想喜歡我的輸出主表:

id | a_id | amount 
------------------------ 
3 | 1 | 2016-01-09 17:42:14 
8 | 2 | 2016-01-11 19:42:14 

我怎樣才能得到這種輸出的?

我試圖通過這個SELECT * FROM(SELECT * FROM表ORDER BY日期時間降序)爲TBL GROUP BY A_ID

在另外我要檢查是否有半小時前插入表中的任何記錄。

+0

https://dev.mysql.com/doc/refman/5.7/en/example-maximum-column-group-row.html – Strawberry

+0

[檢索的最後一個記錄每個組中]的可能的複製(HTTP ://stackoverflow.com/questions/1313120/retrieving-the-last-record-in-each-group) – Strawberry

回答

0

如果你不關心性能,你可以使用IN操作符w /列日期時間和子查詢w/MAX()。

SELECT 
* 
FROM 
    tbl 
WHERE 
    `datetime` IN 
      (
       SELECT MAX(tbl2.`datetime`) 
       FROM tbl tbl2 
       WHERE tbl.a_id = tbl2.a_id 
      ) 
+0

我已經發布了這個想法,以及如果另一個a_id具有相同的日期時間作爲最大日期時間一個特定的a_id? – sagi

+0

由於不同的a_id,相應的tbl.a_id不同,並且兩個重複日期時間不會出現在同一個子查詢結果集中。 –