我有一个球员表和得分表。球员表持有国家和分数表保存每个球员的分数。我想要一个能够分别显示每个国家平均分数的查询。Mysql和PHP查询
目前我的查询是:
$queries[3]['sql'] = "SELECT country, avg(score) FROM scores JOIN players GROUP BY country DESC";
这将集团的国家,但它将对所有国家相同的平均分数。
感谢
我有一个球员表和得分表。球员表持有国家和分数表保存每个球员的分数。我想要一个能够分别显示每个国家平均分数的查询。Mysql和PHP查询
目前我的查询是:
$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";
我现在有以下查询给我一个消息,说“没有结果” \t $ queries [3] ['sql'] =“SELECT country ,avg(分数)FROM球员INNER JOIN分数ON players.country = scores.score GROUP BY country DESC“; – user3585410
因为players.country不应该与scores.score相匹配 –
这是因为JOIN
无条件就像CROSS JOIN
,我想这是不是你想要的。你应该在ON
或WHERE
补充条件:
SELECT
country,
AVG(score)
FROM
scores JOIN players ON /* condition */
GROUP BY
country
为什么yu使用DESC? –
@Code Lover:我的坏,谢谢你的提示:) – potashin
你需要一个子查询的球员加入到由已加入到玩家的表...例如玩家进行分组积分榜。
SELECT player.country,players.player,averagescore FROM 球员 INNER JOIN (选择球员,AVG(分数)AS averagescore FROM 国家通过INNER JOIN球员球员 players.playerid = scores.playerid组)平均水平。 ON average average.player = players.player
你确定这两个表加入正确吗? –