さて、私は4つのテーブルを持っています:
credits, playlog, sessionlog, user
credits
userid
には結合する列がありますuser
。
playlog
とsessionlogid
結合する必要がありsessionlog
ます。
sessionlog
とuserid
結合する必要がありuser
ます。
したがってsessionlog
、ユーザーを取得するために必要な何かに参加すると、行が複数回リストされます。
なぜこうなるのかはわかっているつもりですが、それを防ぐ方法がわかりません。
したがって、プレイヤーがレベルをプレイするたびに、playlog
(および everyplaylog
に が含まれるsessionlogid
) が作成されます。
すべてを結合すると、すべてのプレーヤーがplaylog
s の数だけリストに表示されます。
たとえば、特定のプレーヤーのクレジットを見ると、クレジットを使用した頻度に応じて 2 行が表示されます。
しかし、それを と結合するとすぐにsessionlog
、これらの 2 つの行が乗算され、それにplaylog
属する s の数が表示されsessionlog
ます。彼が 5 つのレベルをプレイした場合、これらの 2 つの支払い行は 5 倍され、出力は 2 つの支払いで 10 行になります。これにより、レベルごとの支払いを計算するのに大きな問題が発生しています。
playlog
すべてのsessionlog
制約と追加の制約から最新のもののみを取得するクエリを作成するにはどうすればよいですか?