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"
 

myflasher

Rheinischer Krummstiel
Registriert
19.06.07
Beiträge
378
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:

apfelq

Braeburn
Registriert
10.10.08
Beiträge
42
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
 

myflasher

Rheinischer Krummstiel
Registriert
19.06.07
Beiträge
378
Jo so gehts. Nur muss man bei ORDER BY statt einem b.dsb ein min(b.dsb) machen, denn ansonsten sortiert er nicht richtig.