我有一个球员表和分数表。球员表包含国家,分数表包含每个球员的分数。我想要一个查询,它将分别显示每个国家的平均分数。
目前我的查询是:
$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";
这是因为没有条件的JOIN
和CROSS JOIN
一样工作,我想这不是你想要的。您应该在ON
或WHERE
:中添加条件
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