我在主表中的行的两个不同条件下从特定表中获取行数时遇到问题:
主要是,我有一个玩家桌子,有简单的信息,比如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
答案 0 :(得分:3)