我有一个简单的问题:

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

我想收到一场比赛的邀请。
我不知道该把计数表放在哪里。

最佳答案

您将使用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

关于mysql - 内部联接的SQL#/计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15930902/

10-12 20:54