簡體   English   中英

內部聯接的SQL#/計數

[英]SQL #/count from inner join

我有一個簡單的查詢:

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放在select子句中。 它在該記錄的分組級別對所有記錄進行計數。 為了獲得游戲計數,您需要按games.id 如果您想要總數,games.id從select子句中刪除,games.id ,並且不進行任何分組。

SELECT count(invitations.invitationID), games.id
FROM games 
INNER JOIN invitations ON invitations.game_id = games.id 
Group By Games.Id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM