2012-08-10 76 views
1

我在按照我想要的方式對查詢進行分組和彙總結果時遇到一些主要困難。我無法用文字解釋我想要做什麼,所以我只會告訴你。我有三個表:A,H和W,其看起來像(簡化):試圖從三個SQL表中總結和分組兩組結果

表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 

表寬:

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

我想獲得由援助和維德分組的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)進行分組或總結時,我無法弄清楚。我只是不理解如何完成這一點。任何幫助將不勝感激。

在此先感謝!

回答

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 
+0

這看起來不錯。祕密在於小組由w.name,a.name – HerrSerker 2012-08-10 21:22:16

+0

這個答案看起來不錯。 @Stedel有一點是,它看起來像你提供的樣本輸出表並不是你想要的。你想要的輸出不是這樣嗎? name1,atk,name2 charlie,22,adam charlie,12,bob donald,6,adam donald,7,bob – user1590499 2012-08-10 21:29:13