1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

MySQL: Nur niedrigsten Wert ausgeben

Dieses Thema im Forum "PHP & Co." wurde erstellt von myflasher, 20.02.09.

  1. myflasher

    myflasher Rheinischer Krummstiel

    Dabei seit:
    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"
     
  2. duderino

    duderino Goldparmäne

    Dabei seit:
    26.01.06
    Beiträge:
    556
  3. myflasher

    myflasher Rheinischer Krummstiel

    Dabei seit:
    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
     
    #3 myflasher, 20.02.09
    Zuletzt bearbeitet: 20.02.09
  4. apfelq

    apfelq Braeburn

    Dabei seit:
    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
    
     
  5. myflasher

    myflasher Rheinischer Krummstiel

    Dabei seit:
    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.
     

Diese Seite empfehlen