在子查询中使用连接进行分组

时间:2012-11-18 21:52:35

标签: mysql group-by

我正在尝试编写一个SQL查询,该查询将返回一列结果的ID号,其中每个团队只会以最佳时间出现。

从本质上讲,它是一个允许人们投入接力赛事的系统(比如有4名队员的游泳比赛),并且只会显示该队伍的最佳时间。

SQL Fiddle:

我唯一能想到的是在result.id上执行Group By并且有一个GROUP_CONCAT字段(member_result.member_id ORDER BY member_result.member_id)。然后,我可以对此进行分组,但后来我陷入困境。

建议非常欢迎。


另外,对于非中继事件,这是我正在使用的代码:

SELECT result_id FROM ( 
    SELECT member_id,MIN(time) AS mintime 
    FROM result 
    JOIN member_result ON result.id = member_result.result_id 
    WHERE event_id = ? 
    GROUP BY member_id 
    ORDER BY mintime
) AS x 
JOIN result ON result.time = x.mintime 
JOIN member_result ON member_result.result_id = result.id AND member_result.member_id = x.member_id AND event_id = ? 
GROUP BY member_result.member_id ORDER BY mintime

0 个答案:

没有答案