クエリの結果を希望どおりにグループ化したり合計したりするのに大きな問題があります。やりたいことを言葉で説明するのが難しいので、お見せします。A、H、および W の 3 つのテーブルがあります (簡略化)。
表 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) を実行しようとすると、理解できない方法でグループ化または合計されます。これを達成する方法がわかりません。どんな助けでも大歓迎です。
前もって感謝します!