Hallo zusammen. Ich habe ein relativ dringendes Anliegen. Und zwar bastle ich grade an einer Verwaltung für einen Sportverein , für die Uni. Abgabe ist Freitag, deshalb brennt mir langsam der A**** ...
Ich habe Turniere, Sportler, Altersklassen und Sportarten als Tabellen in meiner Datenbank angelegt. Diese kommen alle über ihren pk in der Ergebnistabelle zusammen.
Nun will ich eine Bestenliste haben. Soll heißen ich will die top 5,10,20.... in einer bestimmten Altersklasse und einer bestimmten Sportart haben. Ich weiss dass wird oftmals als top N problem bezeichnet und ich habe auch schon einen query, der mir aber leider nicht das richtige ausgibt.
Dieser Query gibt mir für die erste Sportart alle werte aus, für die 2. nur noch 3 und für die 3 schon gar keinen mehr!
Woran könnte denn das liegen? vllt habt ihr ne Lösung und habt des Problem schonmal gesehen, oder sogar selber gehabt.
P.S. Left Join hab ich auch schon probiert und ich will das ganze nach dem Ergebnis Sortieren. Hierzu habe ich 2 Werte in der Ergebnistabelle. Einmal das richtige Ergebnis , wie 12,22m und einen sortierwert 1222 nachdem auch sortiert werden soll!
danke ,
moktor
Ich habe Turniere, Sportler, Altersklassen und Sportarten als Tabellen in meiner Datenbank angelegt. Diese kommen alle über ihren pk in der Ergebnistabelle zusammen.
Nun will ich eine Bestenliste haben. Soll heißen ich will die top 5,10,20.... in einer bestimmten Altersklasse und einer bestimmten Sportart haben. Ich weiss dass wird oftmals als top N problem bezeichnet und ich habe auch schon einen query, der mir aber leider nicht das richtige ausgibt.
Code:
select * from results as res inner join Athlete as ath on (res.sportler = ath.id) * * * inner join Tournament as tour on (res.turnier = tour.id) * * * where Altersklasse = $ak and Sportart = $sportart and * * * wert = (select max(wert) from results as s where res.sportler = s.sportler) order by wert desc«;
Woran könnte denn das liegen? vllt habt ihr ne Lösung und habt des Problem schonmal gesehen, oder sogar selber gehabt.
P.S. Left Join hab ich auch schon probiert und ich will das ganze nach dem Ergebnis Sortieren. Hierzu habe ich 2 Werte in der Ergebnistabelle. Einmal das richtige Ergebnis , wie 12,22m und einen sortierwert 1222 nachdem auch sortiert werden soll!
danke ,
moktor
Comment