按外键计数行

时间:2014-04-03 22:39:58

标签: php mysql sql

我需要一些sql查询帮助。总而言之,我有2个表。 Player(代表体育运动员)和Goal(代表球员得分的目标)。玩家可以拥有多个目标,并使用目标表(player_id)上的外键进行链接。

我想要做的是获得“得分最高的玩家”列表(前5名),但我不知道从哪里开始使用MySQL。在PHP中,我获得了所有目标,然后每个目标计算出有多少player_id出现并将它们分组(然后使用玩家阵列和他们的目标数,将数组减少到5)。它有效,但我几乎肯定我可以在MySQL中进行计数。

我该如何处理?

修改

表格看起来像

播放器

ID
Name

目标

player_id
scored_against
time

1 个答案:

答案 0 :(得分:1)

SELECT COUNT(PLAYER.PLAYER_ID) as Goals,PLAYER_NAME 
FROM PLAYER, GOAL 
WHERE GOAL.PLAYER_ID = PLAYER.PLAYER_ID
GROUP BY GOAL.PLAYER_ID
ORDER BY Goals DESC
LIMIT 5