I have two tables. codes and users. The codes table holds the unique codes along with a reference key which is the user_id, to link to the users table. They look like this: table 1:[b]users[/b]{[u]user_id[/u], name} table 2:[b]codes[/b]{[u]the_codes[/u], user_id, final_score, seconds} Users must answer 10 questions in the fastest time. This query is needed for the leaderboard. Lets fill those tables with data: [b]users[/b] user_id name ------- ------ 1 Jim 2 Bob 3 Lee 4 Peter [b]codes[/b] the_codes user_id final_score seconds ---------- -------- ----------- ----- 1111 1 10 5 2222 1 10 4 3333 1 6 2 4444 3 10 8 5555 4 8 8 [b]Result I need after query:[/b] the_codes user_id final_score seconds name ---------- -------- ----------- ----- ------ 2222 1 10 4 Jim 4444 3 10 8 Lee 5555 4 8 8 Peter **notice the order from top to bottom, heighest score with lowest time, and without duplicating all the scores for Jim, just his best score! Now I need to query those two tables and get a list of scores (dont want scores by the same user, just one score per user being the best score ofcourse) starting with the highest score with the lowest time, onwards. I can do this fine, but I cant remove the duplicates. I have tried Distict 'user_id', Group By 'user_id', Union etc. But I'm not an SQL master so I dont really know advanced sql. This is the current sql Im using: $sql = "SELECT * FROM codes, users WHERE codes.user_id=users.user_id ORDER BY final_score DESC, seconds ASC"; Please tell me how I can modify this so I dont get those annoying duplicates and still get the best score per user. Thank you.