2009-12-27 79 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相同的行对应的值。

相关问题