请教一条MYSQL语句

drc333 2007-10-22 11:42:28
有一张表里有两个字段

tid uid
1 3
2 5
3 3
4 3
5 6
6 7
7 5
8 7
9 6

我要查出每个uid中最大的tid记录后按tid排序 即查出下面的结果列表.

tid uid
9 6
8 7
7 5
4 3


请教这条MYSQL语句怎么写
...全文
132 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
helloyou0 2007-10-23
  • 打赏
  • 举报
回复
咳,难道非要我贴执行记录~记得表名替换成你们自己的

mysql> show create table a1;
+-------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------+
| a1 | CREATE TABLE `a1` (
`tid` int(11) NOT NULL,
`uid` int(11) NOT NULL,
UNIQUE KEY `tid` (`tid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select * from a1;
+-----+-----+
| tid | uid |
+-----+-----+
| 1 | 3 |
| 2 | 5 |
| 3 | 3 |
| 4 | 3 |
| 5 | 6 |
| 6 | 7 |
| 7 | 5 |
| 8 | 7 |
| 9 | 6 |
+-----+-----+
9 rows in set (0.00 sec)


mysql> select uid, max(tid) as max_tid
-> from a1
-> group by uid
-> order by max_tid desc
-> ;
+-----+---------+
| uid | max_tid |
+-----+---------+
| 6 | 9 |
| 7 | 8 |
| 5 | 7 |
| 3 | 4 |
+-----+---------+
4 rows in set (0.00 sec)

it_zl 2007-10-23
  • 打赏
  • 举报
回复
二楼回复的显示是错的.

SELECT i.* FROM content i,(select max(tid) mtid from content group by uid) i2 WHERE i.tid=i2.mtid
helloyou0 2007-10-23
  • 打赏
  • 举报
回复
如果你查出来是最小的,那就是你把max抄成min了
dreambird1983 2007-10-23
  • 打赏
  • 举报
回复
楼主,1楼的sql没错,楼主再测测
drc333 2007-10-23
  • 打赏
  • 举报
回复
楼上的,不对...查询出来的结果是每组tid最小的.我要的是每组tid最大的.
懒得去死 2007-10-23
  • 打赏
  • 举报
回复
此类问题在MYSQL版里已经有好多。建议你搜索一下:

create table lk7(
tid int,
uid int);
insert into lk7 values
(1,3),
(2,5),
(3,3),
(4,3),
(5,6),
(6,7),
(7,5),
(8,7),
(9,6);
select * from (select * from lk7 order by tid desc) T group by uid order by tid desc;
query result(4 records)
tid uid
9 6
8 7
7 5
4 3


helloyou0 2007-10-23
  • 打赏
  • 举报
回复
select uid, max(tid) as max_tid
from table_name
group by uid
order by max_tid desc

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧