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