我在按照我想要的方式对查询结果进行分组和求和时遇到了一些重大困难。我无法用语言解释我想做什么,所以我只会告诉你。我有三个表: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)时,它以一种我无法弄清楚的方式进行分组或求和。我只是不明白如何实现这一目标。任何帮助将不胜感激。
提前致谢!
答案 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