私は常にSPAMと戦っているので、ユーザーが1日に40人以下の新しいユニークメンバーに連絡することを制限したいと思います。
メッセージを追跡するための現在のDBスキーマは次のようになります
id sender receiver content date belong_to
100 5 7 send1 2013-02-08 09:31:36 5
101 5 7 send1 2013-02-08 09:31:36 7
102 7 5 recevd 2013-02-08 09:32:18 7
103 7 5 recevd 2013-02-08 09:32:18 5
私の現在のクエリは、過去24時間の個別の受信者の数を返すために次のようになります。
SELECT COUNT(DISTINCT(receiver))
FROM `messages`
WHERE sender = 5
AND date >= DATE_SUB(NOW(), INTERVAL 1 DAY)
この例に基づく出力は1ですが、ユーザーが応答したので、これをカウントから除外したいと思います。
私の例のデータに基づいて、受信者が送信者に応答したため、これら2つのエントリをカウントから除外したいと思います。過去24時間の一意の受信者をどのように説明しますが、時間の初めからこの送信者に応答した受信者をいくつでも除外しますか?