MySQL:加入三个表并获得计数

时间:2017-08-10 22:26:07

标签: mysql join

我完全迷失了。

为我的协同团队工作数据库。球员,比赛,比赛的可用球员,比赛选择的球员等......

我想要的第一个主要步骤是能够将玩家,比赛和可用组合在一起,以获得与女性人数和男性人数相匹配的匹配列表。

以下是我的表格:

玩家(身份,性别,姓名,......)

id    Gender  Name
 1    M       David
 2    M       Alberto
 3    F       Alison
 4    F       Karen
 5    F       Callie
 6    M       Stephan

匹配(id,...)

 id     
  1   
  2
  3

可用(id,matchID,playerID)

 id   matchID  PlayerID
  1     1         1
  2     1         8
  3     1        11
 ...   ...       ...
  16    2         1
  17    2         2
  18    2        15
 ...   ...       ...
  26    3         6
  27    3         7
  28    3        18

期望的结果

Match     Women     Men     Total
  1         5       10        15
  2         4        6        10
  3         6       10        16
 ...       ...     ...       ...

这是我最接近的(今天早上):

select m.id, p.gender
  from matches m
  inner join available a on m.id = a.matchid
  inner join players p on p.id = a.playerid

1 个答案:

答案 0 :(得分:0)

早上清晰度:

select m.id,
  sum(case when p.gender="Male" then 1 else 0 end) "Males",
  sum(case when p.gender="Female" then 1 else 0 end) "Females",
  count(p.gender) "Total"
from matches m
inner join available a on m.id = a.matchid
inner join players p on p.id = a.playerid
group by m.id