Ok, heres my story.

End result:
Print out a table (really two) that shows the high scores for games.

I have two tables that im working with.
One has the names of the games in it (games_list), the the other holds the scores (games_scores).

games_list
'gid' (games id)
'gtitle' (game name)
'gname' (name of the games file)
'active' (game active or not)

games_scores
'gid' (games id)
'mid' (members id)
'name' (members name)
'score' (the score)

Like i said above i want to print out a list of the high scores for each game.

Heres the SQL's i've have tried, but none have worked correclty. Im using the GROUP BY and ORDER BY but it seams to be grouping the query before its sorting (ordering) it and not returing me the high score but the first score for the game. I can not change the table structures because this is an add-on for a fourm arcade mod.

This one works fine, but it pulls all the records.
It shows multi-members scores for the same game.
PHP Code:
        $DB->query("SELECT s.mid, s.gid, s.score as high_score, s.name, g.gtitle, g.gname
                      FROM ibf_games_scores s, ibf_games_list g  
                    WHERE g.active='1' and g.gid=s.gid ORDER BY s.gid, high_score DESC "
); 
The rest of these give me the same results.
They returns a list of all the games grouped correctly (one game, one score) but does not give me the highest score for the game.
PHP Code:
        $DB->query("SELECT s.mid, s.gid, s.score as high_score, s.name, g.gtitle, g.gname
                      FROM ibf_games_scores s, ibf_games_list g  
                    WHERE g.active='1' and g.gid=s.gid GROUP BY s.gid ORDER BY s.gid, high_score DESC "
); 
Changed: s.gid to s.gid as game_id and also changed the GROUP BY game_id
PHP Code:
        $DB->query("SELECT s.mid, s.gid as game_id, s.score as high_score, s.name, g.gtitle, g.gname
                      FROM ibf_games_scores s, ibf_games_list g  
                    WHERE g.active='1' and g.gid=s.gid GROUP BY game_id ORDER BY s.gid, high_score DESC "
); 
Added the MAX(s.score)
PHP Code:
        $DB->query("SELECT s.mid, s.gid as game_id, MAX(s.score) as high_score, s.name, g.gtitle, g.gname
                      FROM ibf_games_scores s, ibf_games_list g  
                    WHERE g.active='1' and g.gid=s.gid GROUP BY game_id ORDER BY s.gid, high_score DESC "
); 
Changed to LEFT JOIN
PHP Code:
        $DB->query("SELECT s.mid, s.gid as game_id, MAX(s.score) as high_score, s.name, g.gtitle, g.gname
                      FROM ibf_games_scores s 
                    LEFT JOIN ibf_games_list g ON (g.gid=s.gid)
                    WHERE g.active='1'
                    GROUP BY game_id
                    ORDER BY high_score DESC"
); 
And im sure there where a few others i tried... im goning cross eyed lookin at this damm thing

Ive tried it with only on table, the games_scores and still nothing.

Can somone please lead me in the right direction, or toss out some suggestion of doing this with out haveing to pull all the records form the games_scores table. After time goes by, the table gets big and i do not want to pull all kinds of rows that i do not need.

Thanks for any help.