0

3人の別々のゲームキャラクターの装備データを表示するモックデータベースを作成しようとしています。次のSQLを実行すると、テーブル全体をプルアップできます

SELECT customerID, characters.characterID, characterName, headName, chestName, legsName, armsName
FROM characters
JOIN character_equipmentv ON characters.characterID = character_equipment.characterID
JOIN gear_head ON character_equipment.headID = gear_head.headID
JOIN gear_chest ON character_equipment.chestID = gear_chest.chestID
JOIN gear_legs ON character_equipment.legsID = gear_legs.legsID
JOIN gear_arms ON character_equipment.armsID = gear_arms.armsID
ORDER BY characterID  

ただしSUM、キャラクターのギアスコアを取得する関数を追加すると、次のようになります。

SUM(gear_head.gearScore + gear_chest.gearScore + gear_legs.gearScore + gear_arms.gearScore) AS gearScore

SELECTステートメントの最後に、すべてのキャラクターのギアスコアを組み合わせた最初のエントリのみが表示されます。どうすればこれを修正できますか?

4

2 に答える 2

1

SQL グループ化を確認してください。

OK:SUMは集計関数であり、GROUP BY別の列に基づいて意味のある結果を生成する句が必要です。

于 2012-04-18T04:32:23.147 に答える
0

SUMは集計関数です。つまり、複数の行を取り、それらをマージします。

SQL は、すべての characterID のすべてのギア スコアの合計を示します。

特定の characterID の合計が必要な場合GROUP BY characterIDは、クエリの最後に追加します。

于 2012-04-18T04:39:31.300 に答える