Mysql and PHP query


Mysql and PHP query

我有一个球员表和分数表。球员表包含国家,分数表包含每个球员的分数。我想要一个查询,它将分别显示每个国家的平均分数。

目前我的查询是:

$queries[3]['sql'] = "SELECT country, avg(score) FROM scores JOIN players GROUP BY country DESC";

这将对国家进行分组,但所有国家的平均分数相同。

感谢

您忘记了联接条件。试试这个:

$queries[3]['sql'] = "SELECT country, avg(score) FROM scores As ss JOIN players As pp where ss.PlayerId=pp.PlayerId GROUP BY country";

这是因为没有条件的JOINCROSS JOIN一样工作,我想这不是你想要的。您应该在ONWHERE:中添加条件

SELECT 
   country, 
   AVG(score) 
FROM 
   scores JOIN players ON /* condition */ 
GROUP BY 
   country

您需要一个子查询,该子查询是从加入到分数表的玩家开始的,并按加入到玩家表的玩家分组。。。例如

从中选择player.country,players.player,averagescore玩家内部联接(选择玩家,AVG(得分(作为平均得分FROMcountry INNER加入玩家players.playerid=分数。按玩家分组(AS平均值ON averages.player=玩家.player