2014-04-07 1 views
0

INNER JOIN 하위 쿼리를 사용하는 데 문제가 있습니다.INNER JOIN 하위 쿼리에 문제가 발생했습니다.

아래 코드에서 계산하려는 평균 평점은 해당 플레이어의 평균 평점이 이어야합니다 (a.player). 아래에있는 내 스크립트보고에서

, 내 질문 있습니다

1) 어디에서 둥지 INNER를 사용하여 하위 쿼리가 가입해야합니까?

2) 테이블에 약 20 개의 이름이 있습니다.이 정보는 ('college'테이블)에서 가져옵니다. 하위 쿼리에서 특정 플레이어를 위해 'brating'이 필요합니다. 하위 쿼리에서 WHERE 절이 필요합니까 (예 : "where player = a.player")?

$query = "SELECT a.player,a.team,a.loc,a.pic,a.rank,b.rating FROM college AS a 
      JOIN (
       SELECT player,AVG(rating) AS rating 
       FROM college_rating 
       GROUP BY player 
       ) AS b 
     ON a.player=b.player 
     ORDER BY rank DESC LIMIT 20"; 

답변

1

당신은 하위 쿼리의 각 palyer에 대한 평균 평가를 찾을 필요 = "a.player, a.team, a.loc, a.pic하는을 선택 .rank , (평점 AVG (평점)에서 college_rating에서 player = a.player GROUP BY 플레이어) 등급 대학생 주문 등급 DESC LIMIT 20 ";

0

$ 쿼리 아래와 같이

$query = "SELECT a.player,a.team,a.loc,a.pic,a.rank,b.rating FROM college AS a 
     JOIN (SELECT AVG(rating) AS rating FROM college_rating) AS b 
     ON a.player=b.player 
     ORDER BY rank DESC LIMIT 20"; 
$run = mysqli_query($link,$query); 
while($row = mysqli_fetch_array($run)) { 
echo $row['player'] . ' ' . $row['rating'] . ' ' . $row['team'] . '<br>'; 
}