2011-08-19 36 views
0

我需要一个SQL查询来获取独特用户的最低分数值。我需要类似于高尔夫排行榜的东西,其中最低得分需要在最上面,但是对于给定用户有多个条目。MySQL查询唯一用户和最低分数值

这是我开始用:

<?php 
    $order_by['score'] = 'asc'; 
    $sql = 'SELECT DISTINCT(`username`), `id`, `score`, `type`, `created` FROM `scores` WHERE `username` != "" '; 
    $sql .= 'GROUP BY `username` '; 

    if(is_array($order_by)){ 
    $sql .= 'ORDER BY '; 
    foreach($order_by as $field => $ascDesc){ 
    $order_by_array[] = '`'.$field.'`' . ' ' . strtoupper($ascDesc); 
    } 

    $sql .= implode(', ', $order_by_array); 
    } 
    $results = mysql_query($sql) or die(mysql_error($con)); 
?> 

这是回来与唯一的用户名,但不是他们的得分最低,它只是抓住它找到的第一次得分。我怎样才能得到它返回最低分数?


感谢RiaD!这是我最终什么工作:

SELECT `username`, `id`, MIN(`score`) as mn, `type`, `created` FROM `scores` WHERE `username` != "" GROUP BY `username` ORDER BY `mn` ASC 

回答

3
SELECT username, MIN(score) as mn FROM scores GROUP BY username ORDER BY mn 
+0

+1同一时间,同样的答案:) –

+0

不完全; Ria包括ORDER BY ...检查! – AVProgrammer

4
select username, MIN(score) as minscore from scores where ... GROUP BY username