人のID(athleteid)に基づいてレース結果のリストを表示するクエリがあります。時間(パフォーマンス)とイベント(eventid)の順に人のレースを一覧表示するようにデータベースにクエリを実行しましたが、後で結果をグループ化して最速のままにするために、これをサブクエリとして設定するのに苦労しています。各eventidのパフォーマンス。これは私がこれまでに持っているものです:
$id = $_GET['id'];
$query = sprintf("SELECT events.eventcode, meetings.meetingid, meetings.meetingname, meetings.location, meetings.meetingdate, DATE_FORMAT(meetings.meetingdate,'%%d %%b %%Y') AS date, results.performance, results.unit, results.wind, agegroups.agegroup
FROM results
JOIN athletes ON athletes.athleteid = results.athleteid
JOIN meetings ON meetings.meetingid = results.meetingid
JOIN events ON events.eventid = results.eventid
JOIN agegroups ON agegroups.agegroupid = results.agegroupid
WHERE results.athleteid='$id' AND events.eventtype = 'track' ORDER BY results.eventid asc, results.performance asc, meetings.meetingdate desc");
これは正常に機能し、関連するすべてのエントリを正しい順序で表示します。次に、それをサブクエリに変換してGROUP BYを使用できるようにしましたが、成功しませんでした。これは私がそれで行こうとしていたところです:
$id = $_GET['id'];
$query = sprintf("SELECT * FROM (SELECT events.eventcode, meetings.meetingid, meetings.meetingname, meetings.location, meetings.meetingdate, DATE_FORMAT(meetings.meetingdate,'%%d %%b %%Y') AS date, results.performance, results.unit, results.wind, agegroups.agegroup
FROM results
JOIN athletes ON athletes.athleteid = results.athleteid
JOIN meetings ON meetings.meetingid = results.meetingid
JOIN events ON events.eventid = results.eventid
JOIN agegroups ON agegroups.agegroupid = results.agegroupid
WHERE results.athleteid='$id' AND events.eventtype = 'track' ORDER BY results.eventid asc, results.performance asc, meetings.meetingdate desc) AS t1
GROUP BY t1.eventid");
ただし、これにより、次のようなエラーが発生します。「グループステートメント」の不明な列「t1.eventid」
どんな助けでも大歓迎です