Problem mit einer SQL Abfrage

DerKleene1

Mitglied
Hallo,

ich habe folgende SQL Abfrage:

SELECT DISTINCT(gamename),MAX(score) AS score,userid FROM bb".$n."_swf_games_spiele GROUP BY gamename

Ich habe in der Tabelle mehrere Spielstände zu den Spielen stehen.
Nun soll er immer für jedes Spiel den höchsten Score herraussuchen.
das klappt auch alles, nur leider wird mir dabei nicht die richtige
Userid angezeigt, sonder er nimmt die Userid,
die er als erstes bei dem Spiel findet. und nicht die er bei MAX(score) steht.

Kann mir jemand sagen wich ich das hinbekomme.
Momentan habe ich es in einer While schleife,
und frag dort noch mal extra ab, welche Userid beim Gamename und MAX(score) steht,
nur leider ist das sehr DB lastig (bei momentan 1200 Spielen)

Ich hoffe ihr könnt mir ein Lösung geben, was nciht so DB Lastig ist.

EDIT: Ich hänge mal meine kompletten Code an (ist noch nicht sauber umgesetzt):

PHP:
$aktuelle_session1=$db->query("SELECT DISTINCT(gamename),MAX(score) AS score,userid FROM bb".$n."_swf_games_spiele GROUP BY gamename");
$i=1;
$class=0;
while($test = $db->fetch_array($aktuelle_session1)){
    $test3=$db->query_first("SELECT userid FROM bb".$n."_swf_games_spiele WHERE score='".$test['score']."' AND gamename='".$test['gamename']."'");
    if($test3[userid]==$_REQUEST['uid']){
        $tableclass = ( $class%2 == 0 ) ? "id=\"tablea\" bgcolor=\"{tablecolora}\"" : "id=\"tableb\" bgcolor=\"{tablecolorb}\"";
        $swf_game_allgames_bit .="<tr>
        <td $tableclass align=\"center\"><shnormalfont>$i</font></td>
        <td $tableclass align=\"center\"><shnormalfont>$test[gamename]</font></td>
        <td $tableclass align=\"center\"><shnormalfont>$test[score] Punkte</font></td>
        <tr>";
        $class++;
        $i++;
    }
}
 
Zuletzt bearbeitet:
Wie wärs damit:

Code:
SELECT gamename, score, userid FROM bb".$n."_swf_games_spiele t1 
WHERE score=(
  SELECT MAX(t2.score) FROM bb".$n."_swf_games_spiele t2 
  WHERE t1.gamename=t2.gamename);

Eventuell noch ein "GROUP BY gamename" hinten dran, um bei Gleichstand nur einen User zu ermitteln.
 

Neue Beiträge

Zurück