こんにちは私はここで何か複雑なことをしようと思います。多分あなたはここで私を助けることができます。mysqlはuseridを持つ2つのテーブルを選択し、タイムスタンプを比較して数えます
私は2つのテーブルを持っています:収益と支払い。
収益には、datetimeと他のものとしてuserid、amount、timestampがあります。ユーザーが何かを稼いでいたときの情報だけです。 例:
id | user_id | amount | timestamp |
1 | 2 | 1050 | 31days ago |
2 | 1 | 20 | 10days ago |
3 | 1 | 10 | 9 days ago |
4 | 2 | 10000 | 9 days ago |
...
支払いは、日時として、ユーザーID、金額、タイムスタンプを持ち、ユーザーがX収入を上回っている場合の支払いについてのエントリを持っている今、私の問題に1000例
id | user_id | payout_amount | timestamp |
1 | 2 | 1050 | 30days ago |
...
を言うことができます。いくつの支払いが行われていないか(支払いが決済されていない)の数をCOUNT個計算します。これの意味は。私はpayouts.timestampと同じユーザーIDを持っているearnings.timestampと比較し、新しいエントリーがあるかどうかをチェックする必要があります。はいの場合は、それを数えます(私はここで最初に収益を合計する必要があると思います)。これが可能かどうか私は確信していません。
mysqlだけではこれができないのなら、PHPでもできます。
たとえば、結果は次のようになります.userid1の収益は30にすぎないため、countid = 2であるため、1000にも達していないため、支払いテーブルにはエントリがありません。ユーザーID 2は10000ですが、支払いを実行していないか、または支払いテーブルにエントリを作成していないため、支払いはありません。彼はちょうど古い配当を持っていて、新しい収入は支払われません。
編集:10日前のものは単なる例です。
select COUNT(e.amount) FROM earnings e, payouts p where p.payout_timestamp < e.timestamp AND p.user_id = e.user_id GROUP BY p.user_id, e.user_id
、これを行く:私はこの1つを試したと言うことを忘れ:私は EDIT2あり、実際の日時タイプの使用
| Count(e.amount) |
| 2 |
| 1 |