私は新しいプロジェクトを開始したので、SQLを再訪しています。SQLで二重左結合?
プレーヤー:
Finelist ID細かい ID
罰金 player_id、価格
は、私は3つのテーブル(図示のみ有用フィールド)を持っています私は各プレーヤーのために全体の罰金を得たいです。私はそれぞれの罰金の価格を追加することに苦労しています。
SELECT p.id, COUNT(f.player_id) FROM PLAYERS p LEFT JOIN FINES f ON (p.id=f.player_id) GROUP BY p.id
各プレイヤーのための罰金の適切な量を返します。今私は違う価格で違う罰金を持っています。今、私は中にそれらを追加したい、私はこのようにそれを試してみました:。
SELECT p.id, COUNT(f.player_id) * fl.price FROM PLAYERS p LEFT JOIN FINES f ON (p.id=f.player_id), FINELIST fl WHERE fl.id = f.fine GROUP BY p.id
今では唯一のアカウントにFINELISTの最初の行を取ります。 fine = 1
のFINESの行のみがCOUNTに追加されます。
私がしようとしていることが1つのクエリで可能であり、何か助けてもらいたいのかどうか分かりません。
SUM()を代わりに使用する –
サンプルデータを表示する必要があります –