0

我有两张桌子,一张叫 Players,一张叫 Awards。最终用户给玩家一个“奖励”,玩家可以多次获得相同的奖励。

 Awards Table
----+------------------------------------------------------------------------+
| ID | name                             |  player_id                         |
+----+-----------------------------------------------------------------------+
|  1 | Free-throw Excerpt               |  1                                 |
|  2 | Free-throw Excerpt               |  6                                 |
|  3 | Top Earner                       |  1                                 |
|  4 | Top Player                       |  5                                 |
|  5 | Free-throw Excerpt               |  1                                 |
|  6 | Free-throw Excerpt               |  1                                 |
|  7 | Top Earner                       |  1                                 |
|  8 | Top Player                       |  1                                 |
       ...
+----+-----------------------------------------------------------------------


 `Players Table`
----+------------------------------------------------------------------------+
| ID | name                                                                  |
+----+-----------------------------------------------------------------------+
|  1 | Player A                                                              |
|  2 | Player B                                                              |
|  3 | Player C                                                              |
|  4 | Player D 
       ...                                                                   |  
+----+-----------------------------------------------------------------------

在我的应用程序中,每个玩家都有一个页面,在该页面上,我想显示玩家获得的所有奖项。例如,对于玩家 B 的页面:

球员 A 数据:

  • 罚球摘录:3 票
  • 最高收入者:2 票
  • 顶级玩家:1 票

我可以查询奖励表以获取给予玩家 A 的所有奖励,但我被困在这里,不知道去哪里。然后我需要做一个 COUNT(*) 来获得每个奖项的数量吗?(1 代表顶级球员,3 代表罚球摘录)。

4

1 回答 1

4

你说的对。与 Group By 一起计数将做到这一点

Select a.Name, Count(*) AS Total From Awards a
Where a.PlayerID = 1
Group By a.Name
Order By Count(*) DESC
于 2012-11-05T18:44:53.603 回答