2013-06-08 7 views
0

나는 이것을 수행하는 방법을 찾고 있었지만 유용한 것은 아무것도 찾지 못했습니다!SQL - 최대 열 값 반환

ID | USER | COMMENTS 
--------------------- 
1 | John | 20 
2 | Sara | 32 
3 | Peter| 10 

내가하고 싶은 것은 대부분의 코멘트와 함께 사용자를 선택하는 것입니다

그래서 나는 다음과 같은 열이 다음과 같은 테이블이 있습니다.

<?php 
$usermaxresult = mysql_query("SELECT MAX(comments) FROM users"); 
while ($usermaxrow = mysql_fetch_array($usermaxresult)) { 
$max = "MAX(comments)"; 
echo "$usermaxrow[$max]"; 
} 
?> 

을하지만 단지 최대 댓글 수, 최대 의견이 아닌 사용자를 반환 : 내가 사용하고 있습니다.

---- WORKED!

SELECT MAX(comments) as tot, user FROM users; 

tot는 의견과 user의 수는 것입니다 될 위치 :

$usermaxuploads = mysql_query("SELECT MAX(uploads) as max_count FROM login"); 
$usermaxuploadsrow = mysql_fetch_array($usermaxuploads); 
$maxvar = $usermaxuploadsrow["max_count"]; 

$usermaxresult = mysql_query("SELECT * from login WHERE uploads = '$maxvar' "); 
$usermaxrow = mysql_fetch_array($usermaxresult); 
echo $usermaxrow['usuario']; 
+1

'SELECT * FROM users ORDER BY comments DESC LIMIT 1'? [** ** 구식 ** 데이터베이스 API] (http://stackoverflow.com/q/12859942/19068)를 사용하고 있으며 [최신 버전] (http://php.net/manual/)을 사용해야합니다. en/mysqlinfo.api.choosing.php). – DCoder

+0

'where' to'having' http://stackoverflow.com/questions/2905292/where-vs-have – shevski

+0

오류가 발생했습니다. 다시 확인하십시오. –

답변

0

Yoy는 MAX() 함수에 대한 쿼리에 ALIAS 함수를 사용하여 나중에 지정된 이름으로 함수를 호출 할 수 있습니다.

$usermaxresult = mysql_query("SELECT MAX(comments) as max_count, user FROM users"); 

이제 내가 잘못하거나 다른 답변이 틀린 문제를 이해한다면 나도 몰라

echo $usermaxrow['max_count']; 
echo $usermaxrow['user']; 
+0

작동하지 않습니다. 아무것도 인쇄하지 않습니다. –

+0

내 실수는 이제 최대 댓글을 보여 주지만 최대 댓글을 가진 사용자는 표시하지 않습니다. –

+0

질문에 대한 답변이 아닙니까? – bestprogrammerintheworld

1

그것은 당신이 필요로하는 무엇을 제공해야합니다 의견을 주셔서 감사합니다, CODE (나는 포르투갈어이기 때문에 그것은 포르투갈어에) 상대 사용자 여야합니다.

+0

그러면 테이블의 모든 사용자와 MAX (주석) 값이 반환됩니다. MAX (코멘트)로 사용자를 인쇄하고 싶습니다. –

+0

수정 된 답변보기 GROUP BY 사용자를 삭제하면 필요한 정보를 얻을 수 있습니다. 나는 그것을 지금 시험했다 –

+0

이것은 무엇입니까? 그것은 번호를 인쇄합니다 : 33 –

0

로 인쇄 할 수 있습니다. SELECT MAX(comments) as max_count, user FROM users은 가장 많은 댓글을 가진 사용자를 어떻게 반환합니까? 가장 높은 주석의 번호와 첫 번째 사용자 (가장 많은 주석을 가진 사용자가 아닐 수도 있음)를 리턴합니다. 아래 쿼리가 올바른 쿼리 여야하지 않습니까?

SELECT user, comments FROM users ORDER BY comments DESC LIMIT 0, 1 
+0

그것은 시작된 코드였습니다. 내가 한 일은 $ usermaxuploads = mysql_query ("SELECT MAX (uploads) as max_count FROM 로그인 "); $ usermaxuploadsrow = mysql_fetch_array ($ usermaxuploads); $ maxvar = $ usermaxuploadsrow [ "max_count"]; $ usermaxresult = mysql_query ("SELECT * 로그인에서 WHERE uploads = '$ maxvar'"); $ usermaxrow = mysql_fetch_array ($ usermaxresult); echo $ usermaxrow [ 'usuario']; –