2014-04-07 42 views
0

我在尝试使用带有INNER JOIN的子查询时遇到问题。使用INNER JOIN进行子查询时遇到问题

在下面的代码中,我试图计算的平均评分仅需要该玩家(a.player)的平均评分为

从看我下面的脚本,我的问题是

1)我应该在哪里筑巢内部采用当子查询加入?

2)表格中有大约20个名字,我从这张表(大学表)中提取这些信息。在子查询中,我需要'b.rating'来表示特定的玩家。我是否需要子查询中的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 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>'; 
} 

回答

1

你需要找到的平均得分为子查询各在线播放如下图所示

$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"; 
0

$查询=“选择a.player,a.team,a.loc,a.pic,一.rank ,(SELECT AVG(等级)FROM college_rating其中player = a.player GROUP BY player)作为评级 FROM college a ORDER BY rank DESC LIMIT 20“;