尝试对来自三个SQL表的两组结果进行求和

时间:2012-08-10 21:06:28

标签: mysql sql

我在按照我想要的方式对查询结果进行分组和求和时遇到了一些重大困难。我无法用语言解释我想做什么,所以我只会告诉你。我有三个表:A,H和W看起来像(简化):

表A:

Aid name
1   adam
2   bob 

表H:

Hid Wid  date  atk  Aid
1   1    -     10   2
2   2    -     1    1
3   2    -     5    1
4   1    -     2    2
5   1    -     22   1
6   2    -     7    2

表W:

Wid name     user pass
1   charlie  -    -
2   donald   -    -

我想通过Aid和Wid分组 atk 的SUM。基本上,假设这是一个战斗俱乐部计数。我想显示人W攻击人A的次数总和(它总是单向战斗,即:查理只能攻击亚当,但亚当不能攻击查理)。 (不是真正的战斗俱乐部 - 用于在线游戏:))

我试图让我的结果看起来像:

name1     atk  name2
charlie   22   adam
charlie   12   adam
donald    6    bob
donald    7    bob

我当前的查询看起来像......

SELECT w.name AS name1, h.atk, a.name AS name2
FROM H 
JOIN W ON w.Wid=h.Wid
JOIN A ON a.Aid=h.Aid

...这给了我name1攻击name2的每个实例。当我尝试GROUP BY和/或SUM(h.atk)时,它以一种我无法弄清楚的方式进行分组或求和。我只是不明白如何实现这一目标。任何帮助将不胜感激。

提前致谢!

1 个答案:

答案 0 :(得分:0)

SELECT w.name AS name1, sum(h.atk) as atk, a.name AS name2
 FROM H 
JOIN W ON w.Wid=h.Wid
JOIN A ON a.Aid=h.Aid
GROUP BY w.name, a.name