1

我在以我想要的方式对查询结果进行分组和求和时遇到了一些重大困难。我无法用语言解释我想做什么,所以我会告诉你。我有三个表: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的总和。基本上,假设这是一个搏击俱乐部的统计。我想显示 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) 时,它正在以我无法弄清楚的方式进行分组或求和。我只是不明白如何做到这一点。任何帮助将不胜感激。

提前致谢!

4

1 回答 1

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
于 2012-08-10T21:18:43.313 回答