"GROUP BY" oder "DISTINCT"?

  • Hi!

    Ich steh mal wieder voll am Schlauch! Möchte aus der unteren Tabelle folgendes Ergebnis bekommen: möchte von jedem Team immer nur das aktuellste Spiel angezeigt bekommen! Mit DISTINCT funkt das zwar, aber ich hab dann immer nur das Feld TEAM als Ausgabemöglichkeit! Und bei GROUP BY bringt er mir zwar alle Spalten aber vom ersten Spiel das er findet! Was mache ich falsch bzw. was muss ich ändern?

    PHP
    $sel = mysql_query("SELECT * FROM uhc_spiele GROUP BY Team ORDER BY id DESC");

    bzw.

    PHP
    $sel = mysql_query("SELECT * DISTINCT Team FROM uhc_spiele");

    [Blockierte Grafik: http://www.ivanman.at/Sonstiges/1.gif]

  • Du hast vermutlich auch eine Tabelle für die Teams? Dann ist die einfachste Lösung die mir jetzt einfällt, in die team-tabelle ein Feld für das Datum des aktuellsten Spiels zu packen.
    Dann lasst sich das was du möchtest über einen einfachen join umsetzen.
    Bin jetzt aber nicht sicher ob es die beste lösung ist.

  • Moin,
    Diese Lösung könnte auf Dauer performancelastig werden... hier nach dem wiviele Datensätze es werden!
    Ich schau mich mal noch nach einer einer ordentlichen MySQL Lösung um, aber eine PHP Lösung ist immerhin besser als garnichts^^ :D

    Gruß crAzywuLf

    2 Mal editiert, zuletzt von crAzywuLf (8. Oktober 2008 um 10:12)

  • Danke! Is zwar nicht die "Funktion" die ich mir erwartet habe, aber vielleicht findet ja jemand noch so etwas! Es funktioniert auf jeden Fall einwandfrei und sollte auch nicht zu sehr performancelastig sein, da ich nur auf ca. 150 Spiele/Jahr (Datenbankeinträge) kommen werde!

  • Die Spalten Tag und Uhrzeit sind "Überbleibsel" und werden schon lang nicht mehr verwendet, sind aber noch immer in meiner Tabelle - darum brauchst dir auch nicht den Kopf zerbrechen! Aber wenn du mir eine Abfrage mit "SELECT *" zeigst, die bei jeder Mannschaft immer nur das zuletzt absolvierte Spiel mit allen Informationen ausgibt, dann her damit!