【发布时间】:2011-05-16 12:51:08
【问题描述】:
我无法根据主表中行的两个不同条件从特定表中获取行数:
主要是,我有一张供玩家使用的表格,其中包含简单的信息,例如玩家姓名和 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
【问题讨论】:
-
我认为您可能需要调整示例 SQL .. 这似乎无效。两个表具有相同的引用 ('a'),并且有一个 'r2' 和 'a2' 似乎与任何东西无关。
-
你说得对,我留下了一些错误,应该更好吗?
标签: mysql