【发布时间】:2016-05-02 00:42:56
【问题描述】:
我正在使用 MySQL/PHP5 开发一个田径排名数据库,我正在努力寻找以最高值查询每位独特运动员结果的最佳方法。
只是
SELECT distinct name, event
FROM results
示例数据库
name | event | result
--------------------------
athlete 1 | 40 | 7.43
athlete 2 | 40 | 7.66
athlete 1 | 40 | 7.33
athlete 1 | 60 | 9.99
athlete 2 | 60 | 10.55
假设在这种情况下,我想按照我尝试过的最佳表现对 40 米短跑比赛中的运动员进行排名
SELECT distinct name, event
FROM results
WHERE event = 40
ORDER by result DESC
但不同之处仅留下运动员的第一次表现 (7.43),这不是最好的 (7.33)。除了先创建临时表,先对结果排序,然后在临时表上执行选择之外,还有其他简单的方法吗?
【问题讨论】:
-
你应该使用'min'和'group by'来代替distinct吗?