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