假设我有一张包含以下数据的表格:
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
答案 0 :(得分: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
答案 1 :(得分:1)
如果您只想要最新的ID(由您的问题建议,但不是示例),那么只需使用
SELECT OtherID, MAX(ID) FROM table GROUP BY OtherID
但如果您想要任何其他列,那么OMG Ponies'answer就是您想要的。这是因为选择其他列(例如文本)不能保证返回与MAX(ID)返回的ID相同的行所对应的值。