Mysql连接从另一个表计数行

时间:2011-05-16 12:51:09

标签: mysql

我在主表中的行的两个不同条件下从特定表中获取行数时遇到问题:

主要是,我有一个玩家桌子,有简单的信息,比如playername和id。 我还有一个有动作的桌子,其中列出了每个玩家的动作类型(目标或助攻)。我想让所有球员都有一个专栏来计算他们的进球数,而另一个球员则计算他们的助攻数。当然,我想要那些没有进球的懒人,或者做出任何帮助。

现在我想出了这个请求,但它只给了我最好的玩家,而我想要所有玩家。请点亮我的想法;)

SELECT
  `p`.`playername`, 
  COUNT(`a1`.`actionid`) AS `goals`, 
  COUNT(`a2`.`actionid`) AS `assists`

FROM `Player` AS `p`

LEFT JOIN `Actions` AS `a1` 
ON `a1`.`id` = `p`.`id`

LEFT JOIN `Actions` AS `a2` 
ON `a2`.`id` = `p`.`id`

WHERE `a1`.`type` = 'goal'
  AND `a2`.`type` = 'assist'

GROUP BY  
  `a1`.`userId`,  
  `a2`.`userId` 

LIMIT 0 , 30

1 个答案:

答案 0 :(得分:3)