问一个查询数据库的问题,谢谢!
tuoji 2004-04-10 11:35:50 我有这样的数据表:
+-----------+------------+-------------+
/ attid / userid / lasttime /
+-----------+------------+-------------+
/ 7 / 1 / 1 /
/ 10 / 5 / 2 /
/ 10 / 4 / 3 /
/ 7 / 2 / 4 /
+-----------+------------+-------------+
我的目的是查询按照attid分组,并且按照lasttime排序。我希望的查询结果应该如下:
+-----------+------------+-------------+
/ attid / userid / lasttime /
+-----------+------------+-------------+
/ 7 / 2 / 4 /
/ 10 / 4 / 3 /
+-----------+------------+-------------+
简单点就是这个意思:
如果有多条attid相同的记录,我只要一条。但我要得这条并不是按照表中记录的顺序的第一条,而是选择lasttime最大的一条。比如:
23 345
23 567
23 120
这样两条记录我只需要中间那条,也就是:
23 567
这条,请问这个SQL语句改如何写?
我是这样写的:
SELECT * FROM tb1 GROUP BY attid ORDER BY lasttime DESC
但查询结果不对,这样得到的查询结果是:
+-----------+------------+-------------+
/ attid / userid / lasttime /
+-----------+------------+-------------+
/ 10 / 5 / 2 /
/ 7 / 1 / 1 /
+-----------+------------+-------------+