Ilja: mysql - Problem mit DISTINCT und ORDER BY

Beitrag lesen

yo,

das problem ist ein wenig komplizierter, weil wir das datum mitschleifen müssen.

SELECT h1.punkte, h1.zeitverbrauch, t.vorname, t.nachname, t.strasse, t.ort, t.email, h.datum
FROM teilnehmer t
INNER JOIN highscore h1 ON h1.spielerID = t.id
WHERE h1.id =
(SELECT MIN(h2.id)
 FROM highscore h2
 WHERE h2.spielerID = t.id
 AND h2.eintragzeit BETWEEN '2007-01-01' AND '2007-01-31'
 AND h2.punkte = (SELECT MAX(h3.punkte)
                  FROM highscore h3
                  WHERE h3.spielerID = t.id
                  AND h3.eintragzeit BETWEEN '2007-01-01' AND '2007-01-31'
                 )
 AND h2.zeitverbrauch = (SELECT MIN(h3.zeitverbrauch)
                         FROM highscore h3
                         WHERE h3.spielerID = t.id
                         AND h3.eintragzeit BETWEEN '2007-01-01' AND '2007-01-31'
                         AND h3.punkte = (SELECT MAX(h4.punkte)
                                          FROM highscore h4
                                          WHERE h4.spielerID = t.id
                                          AND h4.eintragzeit BETWEEN '2007-01-01' AND '2007-01-31'
                                         )
                        )
)
ORDER BY high DESC, h1.zeitverbrauch
LIMIT 0, 100

ich kann die abfrage nicht testen, können als kleine tippfehler drinn sein. scheint auf den ersten blick ein wenig "oversized" zu sein. aber auf den ersten blick fällt mir nichts anderes ein....schau mal, ob sie überhaupt geht.

Ilja