2015-03-24 21 views
-1

選擇我有以下的列的mysql表:MySQL在一個表

ID1,ID2,時間戳

ID2爲自增列項。 id2不是唯一的。所以你可能有以下行:

1,12,983475 2,12,092348 3,23,987455 4,23,908457

我需要得到以下行,其中時間戳是最新的id2。

即結果將是:

1,12,983475 3,23,987455

此外,數字987455和983475都只是虛構的......

幫助,請.. 。

+0

有幫助的文章:http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row -per-group-in-sql/ – 2015-03-24 22:29:36

回答

1

您可以使用子查詢與max()骨料此:

select y.id1, y.id2, y.timestamp 
from yourtable y 
    join (select id2, max(timestamp) maxtimestamp 
     from yourtable 
     group by id2 
    ) y2 on y.id2 = y2.id2 and y.timestamp = y2.maxtimestamp 

這可能會返回關係 - 如果您確實需要每個不同的id2單行,則可以使用user-defined variables建立行號。

+0

謝謝你的指導..將測試並看看我怎麼走 – Hems 2015-03-25 22:38:59

0

SELECT ID2 FROM表ORDER BY MAX(時間戳)DESC LIMIT 0,1

+0

感謝您的回覆,但這不會工作,因爲它只會返回一行 所以桌子結構可以是: 1,12,983475 2,12,092348 3,23,987455 4,23,908457 而答案是: 1,12,983475

3,23,987455
Hems 2015-03-25 22:39:58

+0

選擇*從表ORDER BY時間戳DESC – 2015-03-30 14:49:06

0

選擇和限制使用最高(時間戳)

例如select * from table where timestamp =(從表中選擇max(timestamp))

+0

感謝您的答覆,但這不會工作,因爲它只會返回一行。 – Hems 2015-03-25 22:39:37