1

我有一个简单的查询:

SELECT games.*
FROM games 
INNER JOIN invitations ON invitations.game_id = games.id 

我想获得#(COUNT) 个游戏邀请。我不确定在哪里放置 count 语句。

4

2 回答 2

1

您将使用count()聚合函数并按游戏 ID 分组:

SELECT g.id, g.name, count(i.game_id) TotalInvitations
FROM games g
INNER JOIN invitations i
  ON i.game_id = g.id 
group by g.id, g.name

这也可以使用子查询来编写:

select g.*, i.TotalInvitations
FROM games g
INNER JOIN
(
  select game_id, count(game_id) TotalInvitations
  from invitations
  group by game_id
) i
  ON i.game_id = g.id 
于 2013-04-10T16:06:21.320 回答
0

子句中的countgo 。select它计算该记录分组级别的所有记录。做为了得到你需要分组的游戏计数games.id。如果您只想要一个总数,games.id,则从 select 子句中删除并且不进行任何分组。

SELECT count(invitations.invitationID), games.id
FROM games 
INNER JOIN invitations ON invitations.game_id = games.id 
Group By Games.Id
于 2013-04-10T16:06:52.547 回答