我有一个简单的查询:
SELECT games.*
FROM games
INNER JOIN invitations ON invitations.game_id = games.id
我想获得#(COUNT) 个游戏邀请。我不确定在哪里放置 count 语句。
您将使用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
子句中的count
go 。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