2009-12-27 154 views
0

可以說我有類似下面的一些數據表:根據其他具有相同值的條目選擇最新條目?

ID  text  OtherID 
_______________________ 
6  text1  24 
7  text2  24 
8  text3  24 
9  text1  25 
10 text2  25 

正如你可以看到我有同樣的OtherID多個條目。什麼是一個sql語句,將只選擇具有相同OtherID的所有條目中的最新ID。如果這很重要的話,這在MySQL中完成。

比如我希望它輸出:

ID  text  OtherID 
_______________________ 
8  text3  24 
10  text2  25 

回答

3

用途:

SELECT DISTINCT 
     x.id, 
     x.text, 
     x.otherid 
    FROM TABLE x 
    JOIN (SELECT t.otherid, 
       MAX(t.id) 'max_id' 
      FROM TABLE t 
     GROUP BY t.otherid) y ON y.otherid = x.otherid 
          AND y.max_id = x.id 
+0

謝謝,這工作。 – smont 2009-12-27 00:59:44

1

如果你只想要最新的ID(由你的問題的建議,而不是爲例),那麼就使用

SELECT OtherID, MAX(ID) FROM table GROUP BY OtherID 

,但如果你想要的任何其他列,然後OMG小馬answer是你想要的。這是因爲選擇其他列(如文本)不能保證返回與由MAX(ID)返回的ID相同的行對應的值。

相關問題