次のテーブル構造を考慮してください (これはサンプル データであるため、同一のタイムスタンプは無視してください)。
+---------+---------+------------+-----------+
| list_id | item_id | date_added | is_active |
+---------+---------+------------+-----------+
| 1 | 1 | 1352073600 | 1 |
| 1 | 2 | 1372073600 | 1 |
| 1 | 3 | 1332073600 | 1 |
| 1 | 4 | 1302073600 | 1 |
| 2 | 1 | 1302073600 | 1 |
| 3 | 1 | 1302073600 | 1 |
+---------+---------+------------+-----------+
クライアントは、特定の日に作成されたリストの数を表示したいと考えています。リストは最初のアイテムが追加されたときに作成されますが、日付は明示的に保存されず、アイテムが追加された日付のみが保存されます。
私の質問はこれです:
MySQL (およびタイムスタンプを計算するための PHP) を使用して、特定の日に作成されたリストの数を返すにはどうすればよいですか。基本的に、ロジックは (疑似コード) である必要があります。
tbl_list_items
>= min_agedate_added
および<= max_ageから合計レコードを選択しdate_added
、レコードがこのリストで最も古い
私が探しているものを説明するのは難しいので、次のアクションを検討してください。
No items added to lists yet (i.e. all lists have 0 items)
User added `item_id = 1` to `list_id = 1` yesterday.
User added `item_id = 2` to `list_id = 1` today.
User added `item_id = 1` to `list_id = 2` yesterday.
User added `item_id = 1` to `list_id = 3` yesterday.
User added `item_id = 2` to `list_id = 2` today.
昨日作成されたリストの数 (または、昨日最初のアイテムが追加されたリストの数) を調べたい場合は、アイテムが最初に追加された合計数 = 昨日を返したいと思います。上記のアクション セットを指定すると、これは合計 3 (つまりlist_id = 1
、list_id = 2
およびlist_id = 3
) を返します。