item_id ごとの購入だけでなく、合計購入数を経時的にカウントしたいと思います。この例では、ユーザーがアイテムを所有でき、これらのアイテムを他のユーザーが購入できます。所有者は自分のアイテムを購入することはできません。
私が抱えている問題は、正の整数カウントを持つ日と一緒に購入がなかった日に「0」のカウントで結果を返す方法です。
これが私のテーブルです:
items | items_purchased | numbers | dates
i_id item_id user_id | p_id item_id user_id date | num | datefield
1 1 11 | 1 1 13 2009-01-11 | 1 | 2005-06-07
2 2 12 | 2 1 14 2009-01-11 | 2 | 2005-06-08
3 3 11 | 3 2 15 2009-01-12 | 3 | 2005-06-09
| 4 3 16 2009-01-12 | ... | ...
| 5 1 17 2011-12-12 | 1000 | 2015-06-07
user_id=11
のアイテムの合計購入数に対する私の MYSQL クエリは次のとおりです。
SELECT COUNT(*) as counts, DATE(purchase_date) as DATE
FROM items_purchased
JOIN items on items_purchased.item_id=items.item_id
WHERE items.user_id=11
GROUP BY DATE(purchase_date)
//note this query **doesn't** make use of the numbers and dates tables b/c I don't know how to use them
結果は次のとおりです。
counts date
2 2009-01-11
1 2009-01-12
1 2011-12-12
代わりに私が見たいものは次のとおりです。
counts date
2 2009-01-11
1 2009-01-12
0 2009-01-13
0 ... // should be a row here for each day between 2009-01-13 and 2011-12-12
1 2011-12-12
0 ... // should be a row here for each day between 2011-12-12 and current date
0 current date (2012-6-27)
item_id=1
所有者が制限されている購入の総数を求める MYSQL クエリは次のuser_id=11
とおりです。
SELECT COUNT(*) as counts, DATE(purchase_date) as DATE
FROM items_purchased
JOIN items on items_purchased.item_id=items.item_id
WHERE items.user_id=11 and items.item_id=1
GROUP BY DATE(purchase_date)
結果は次のとおりです。
counts date
2 2009-01-11
1 2011-12-12
上記と同様に、代わりに見たいのは次のとおりです。
counts date
2 2009-01-11
0 2009-01-12
0 ... // should be a row here for each day between 2009-01-12 and 2011-12-12
1 2011-12-12
0 ... // should be a row here for each day between 2011-12-12 and current date
0 current date (2012-6-27)
numbers
どういうわけか、とテーブルを組み込む必要があると思いますが、dates
これを行う方法がわかりません。どんな考えでも大歓迎です、
ありがとう、ティム