如何编写SQL查询在结果表中有多个求和列?

时间:2012-09-03 21:12:42

标签: mysql sql database

例如,有2个表:

系列:有3个相关专栏(2个系列是一系列): series_id,team1_id和team2_id

结果:有3个相关专栏: series_id,team_id(和时间)

每次团队赢得SERIES游戏时,都会在RESULTS表中插入一行。

我必须知道每个系列的当前分数。所以我需要加入关于series_id和团队ID的表格。但是我想要一个看起来像这样的结果:

series team1 team2
------------------
1        4     3
2        3     1
3        2     4

我不明白如何在结果表中获取多个列,这两个列都存储来自输入表的条件行的SUM。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

加入series_id上的表格,然后按系列分组并计算获胜团队与系列中各自参与者匹配的次数(在MySQL中可以使用SUM(boolean expression)来执行计数,因为TRUE等同于1FALSE0):

SELECT   series_id,
         SUM(RESULTS.team_id = SERIES.team1_id) AS team1,
         SUM(RESULTS.team_id = SERIES.team2_id) AS team2
FROM     SERIES LEFT JOIN RESULTS USING (series_id)
GROUP BY series_id