2010-01-07 58 views
0

我有一張表格,內容如下。這些名稱不是唯一的。查詢最新的最新用戶

userid, name 
1, dave 
2, john 
3, mike 
4, mike 
5, dave 

我想返回具有最高用戶標識的唯一名稱。

即。

2, john 
4, mike 
5, dave 

這樣做的查詢是什麼?

回答

6
select name, max(userid) as max_userid 
from users 
group by name 
order by max(userid) asc 
-2
select userid, name from users where name='john' order by userid desc limit 1 

select userid, name from users where userid 
    = (select max(userid) from users where name='john') 

第一語法是MySQL特定(在其他數據庫中沒有 「限制」 子句)。

+2

這些查詢只返回一個排這是不正確 – Yada 2010-01-07 22:08:57

+1

沒有標記,你到這裏,但你的第一條語句只會返回一個行(如問題描述並非所有的三個)和你的第二個將只返回名稱具有最高的ID(在關係情況下可以多於一個)。 – davek 2010-01-07 22:09:52

+0

對不起,問題不清楚。那麼請參閱davek的回答。 – 2010-01-07 22:10:55