Hey!
Ich habe wieder mal ein kleines Problem mit MySQL – wieder mit der Leichtathletik-Datenbank, die ich betreue. Folgendes:
Es gibt Einzelergebnisse und es gibt Mannschaftsergebnisse. Es gibt eine Tabelle ergebnisse, die bis heute folgende Spalten hatte: id, altersklassenkuerzel, altersklassenkuerzel1, disziplinkuerzel, ergebnis, sportlerkuerzel, sportlerkuerzel1, sportlerkuerzel2, sportlerkuerzel3, sportlerkuerzel4, ort, tag.
Wenn jetzt mehr als ein Athlet gestartet ist, bspw bei einer Staffel, dann habe ich die Kürzel der Sportler in die ersten vier sportlerkuerzel-Spalten geschrieben. Jetzt ist aber der Fall aufgetreten, dass bei einem Wettkampf eine Mannschaft aus acht Sportlern besteht. Ich hätte hier also noch drei Spalten hinzufügen müssen, die meist leer sind. Da habe ich mir gedacht, ich lösche alle Sportlerkuerzel-Spalten bis auf eine, und schreibe da, wenn es eine Mannschaftsdisziplin ist, die Kürzel der Sportler in einer Kommaseparierten Liste rein.
Soweit so gut, klappt auch alles. Mein SQL-Code, der das Ganze ausliest, sieht so aus (vereinfacht, alles meiner Meinung nach unwichtige rausgelöscht):
[PHP]
SELECT ergebnisse.akuerzel, ergebnisse.dkuerzel, ergebnisse.ergebnis, ergebnisse.ort, ergebnisse.tag, ergebnisse.monat, GROUP_CONCAT(athleten.athlet SEPARATOR ‚
‘) athlet, CAST(ergebnis AS DECIMAL(12,6)) as ergebnis_nummer FROM ergebnisse
INNER JOIN athleten ON FIND_IN_SET(athleten.skuerzel, ergebnisse.skuerzel) > 0
WHERE jahr=‚14‘ AND meisterschaft !=‚‘
GROUP BY ergebnisse.id[/PHP]
Die vollen Namen der Athleten werden durch den INNER JOIN aus der Tabelle athleten gezogen und mit dem
-Tag als Trennzeichen in die Spalte athlet eingefügt.
Jetzt das Problem: Die Sortierung der Namen in der Spalte athlet entspricht nicht der Reihenfolge der durch Komma getrennten Kürzel in der Spalte skuerzel in der Tabelle ergebnisse.
Wie kann ich also das Ergebnis der INNER JOIN in der Reihenfolge ausgeben, wie die Kürzel in der Spalte ergebnisse.skuerzel stehen?
Vielen Dank schon mal!