Tobias Kloth: Zeiten für Bestenliste abfragen

Beitrag lesen

Hallo Vinzenz,

http://dev.mysql.com/doc/mysql/en/example-maximum-column-group-row.html zeigt einen nicht effizienten Trick, dort MAX-CONCAT-Trick genannt. Du müsstest den MIN-CONCAT-Trick verwenden :-(

Danke für den Tipp - damit funktioniert es, auch wenn der Query jetzt wirklich _sehr_ schmutzig ist (Datenbankexperten bitte hier nicht mehr weiterlesen ...):

SELECT  
  LEFT(MIN(CONCAT(  
    TIME_FORMAT(z.zeit,'%i:%s'),  
    ',',  
    LPAD(z.hundertstel,2,'0'),  
    DATE_FORMAT(z.datum,'%d.%m.%Y'),  
    DATE_FORMAT(m.gebdatum,'%Y'),  
    LPAD(m.nachname,50,' '),  
    LPAD(m.vorname,30,' ')  
  )),8) as zeit,  
  SUBSTRING(MIN(CONCAT(  
    TIME_FORMAT(z.zeit,'%i:%s'),  
    ',',  
    LPAD(z.hundertstel,2,'0'),  
    DATE_FORMAT(z.datum,'%d.%m.%Y'),  
    DATE_FORMAT(m.gebdatum,'%Y'),  
    LPAD(m.nachname,50,' '),  
    LPAD(m.vorname,30,' ')  
  )),9,10) as datum,  
  SUBSTRING(MIN(CONCAT(  
    TIME_FORMAT(z.zeit,'%i:%s'),  
    ',',  
    LPAD(z.hundertstel,2,'0'),  
    DATE_FORMAT(z.datum,'%d.%m.%Y'),  
    DATE_FORMAT(m.gebdatum,'%Y'),  
    LPAD(m.nachname,50,' '),  
    LPAD(m.vorname,30,' ')  
  )),19,4) as jahrgang,  
  TRIM(SUBSTRING(MIN(CONCAT(  
    TIME_FORMAT(z.zeit,'%i:%s'),  
    ',',  
    LPAD(z.hundertstel,2,'0'),  
    DATE_FORMAT(z.datum,'%d.%m.%Y'),  
    DATE_FORMAT(m.gebdatum,'%Y'),  
    LPAD(m.nachname,50,' '),  
    LPAD(m.vorname,30,' ')  
  )),23,50)) as name,  
  TRIM(SUBSTRING(MIN(CONCAT(  
    TIME_FORMAT(z.zeit,'%i:%s'),  
    ',',  
    LPAD(z.hundertstel,2,'0'),  
    DATE_FORMAT(z.datum,'%d.%m.%Y'),  
    DATE_FORMAT(m.gebdatum,'%Y'),  
    LPAD(m.nachname,50,' '),  
    LPAD(m.vorname,30,' ')  
  )),73,30)) as vorname  
FROM mitglieder AS m, zeiten AS z  
WHERE m.mw = 'm' AND z.disziplin = 4 AND z.streckenlaenge = 100 AND m.id = z.mitgliedid  
GROUP BY m.id  
ORDER BY zeit

Werde ich jetzt es erstmal lassen - auf Geschwindigkeit kommt es nicht wirklich an und früher oder später wird die Seite sowieso wieder überarbeitet.

Grüße aus Nürnberg
Tobias