• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

MySQL: Nur niedrigsten Wert ausgeben

myflasher

Rheinischer Krummstiel
Registriert
19.06.07
Beiträge
378
Hallo,
ich bin gerade dabei ein kleines Auswertungsprogramm zu schreiben. Das ganze läuft natürlich MySQL gestützt. Zuerst wird in die Tabelle „teilnehmer“ die Startnummer, der Vorname und der Nachname eingetragen. Die Ergebnisse werden in der Tabelle „ergebnis“ eingetragen. Der Teilnehmer wird über die Startnummer identifiziert. Also wird in die Tabelle „ergebnis“ Startnummer und die Punktzahl eingetragen.

Jetzt kann es aber vor kommen, dass ein Teilnehmer öfter an den Start geht und dann selbstverständlich mehrere Ergebnisse in der Tabelle stehen. Wie schaffe ich es mit SQL, dass nur der niedrigste (also das beste Ergebnis) ausgelesen wird?

Hier mal der SELECT mit einem JOIN für beide Tabellen.
Code:
SELECT a.startnr, a.vname, a.nname, a.disziplin, a.verein, b.ringe, b.teiler, b.dsb
FROM teilnehmer a JOIN ergebnis b ON a.startnr = b.startnr
ORDER BY b.startnr asc"
 
Danke!
Wenn du mir jetzt noch sagen könntest wie ich es einbinden kann. Ich brauche jetzt ja zwei SELECTS. Nur wie mach ich das jetzt?

So ich habs!
Code:
SELECT a.startnr, a.vname, a.nname, a.disziplin, a.verein, b.ringe, b.teiler, min(b.dsb)
FROM teilnehmer a JOIN ergebnis b ON a.startnr = b.startnr
GROUP BY b.startnr
ORDER BY b.dsb desc
 
Zuletzt bearbeitet:
sollte so gehen.
Code:
SELECT a.startnr, a.vname, a.nname, a.disziplin, a.verein, b.ringe, b.teiler, MIN(b.dsb) as bestzeit
FROM a, b
WHERE b.startnr = a.startnr
GROUP BY b.startnr
ORDER BY b.dsb DESC
 
Jo so gehts. Nur muss man bei ORDER BY statt einem b.dsb ein min(b.dsb) machen, denn ansonsten sortiert er nicht richtig.