一个SQL查询有关问题,请问

一个SQL查询问题,请教

id userid time  

——————-

1 001 2010-03-01

2 001 2010-03-02

3 001 2010-03-03

4 001 2010-03-05

5 001 2010-03-11

6 001 2010-03-13

7 002 2010-03-03

8 002 2010-03-05

9 002 2010-03-13

10 002 2010-03-15

11 002 2010-03-21

12 002 2010-03-23

13 003 2010-04-03

14 003 2010-04-05

15 004 2010-04-08

16 004 2010-04-09

17 005 2010-04-11

18 005 2010-04-13

表结构如上。。。

我想从这张表中查出每个人最后登录时间(也可以说是几个userid中ID最大的记录)

得到如下结果

id userid time  

——————-

6 001 2010-03-13

12 002 2010-03-23

14 003 2010-04-05

16 004 2010-04-09

18 005 2010-04-13

请问此语句怎么写?因为这张表很大 考虑到效率问题 如何解决呢?



select a.* from tt a inner join

(select userid,max(time) as ma from tt group by userid) b

on a,userid=b.userid and a.time=b.ma




参考下贴中的几方法。

http://topic.csdn.net/u/20091231/16/2f268740-391e-40f2-a15e-f243b2c925ab.html

分组取最大N条记录方法征集




刚刚回答弄错了

select id, max(time) from tableName group by userid

这样你事试一试 在我这里是好用的

好用的话记的结帖

一个SQL查询有关问题,请问

相关文章:

你感兴趣的文章:

标签云: