2

私は、結果の ID 番号の列を返す SQL クエリを作成しようとしています。その中の各チームの人々は、最高のタイムでのみ表示されます。

要するに、リレー種目(水泳の4人チーム)にタイムを入れて、そのチームのベストタイムだけを出すシステムです。

SQL フィドル:

私が考えることができる唯一のことは、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
4

0 に答える 0