2012-04-18 6 views
0

3つの別個のゲームキャラクタの機器データを表示するモックデータベースを作成しようとしています。私のSELECTのためにMySQLのSUM関数がいくつかのデータ列を削除するのはなぜですか?

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

:私は、次のSQLを実行すると、私はSUM機能を追加したときに、文字のgearscoreを取得するために

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 

しかし、完全なテーブルをプルアップすることができていますそれは、すべてのキャラクターのギア・スコアを組み合わせた最初のエントリーを表示するだけです!これをどうすれば解決できますか?

+0

すべての集約関数はこの特性を持っています。他に何がほしいか – diEcho

+0

出力を何にしたいですか?合計が各行に表示された最初のクエリの結果? –

+0

私はそれぞれのキャラクターのギア得点をそれぞれのキャラクターラインで情報テーブルを探していました – jrounsav

答えて

1

SQL Groupingを参照してください。

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

+0

非常に感謝しています!問題を修正してグループ化する – jrounsav

+1

@Cluckles答えを自由に受け入れてください。 – fancyPants

0

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

あなたが与えられたcharacterIDのため合計は、クエリの最後にGROUP BY characterIDを追加したい場合は、あなたのSQLを使用すると、すべてのcharacterIDs

のためのすべての歯車スコアの合計を教えてくれます。

関連する問題