本文介绍关于查询某列最大值的记录常用的一些方法。 参考自mysql用户手册和相关链接。
1. 用子查询:
例子: select a,b,c
from T
where c=(select max(c) from T)
2. 让表自己和自己左外连接:
例子: select t1.a, t1.b, t1.c
from T t1 left join T t2 on t1.c < t2.c
where t2.a is null
3. 排序+limit:
例子:select a, b, c
from t
order by c desc
limit 1
备注: 以上3中方法 碰到分组 排序和临时表的时候 可能会有问题。 这时候可以考虑下面这个例子:
select *
from (select * from T [where ...] order by c desc) as s --在嵌套的查询子句中先排序
group by b
limit 1