私はデータベースの専門家ではありません。私は、カレンダーからユーザーが選択した2つの日付の間のページビューを毎日表示する必要があるプロジェクトに取り組んでいます。私は以下を持っています
次のようなページビューの総数をもたらすSQLクエリ
SELECT DATE_FORMAT(created_at,'%d %b %Y') as this_date, count(*) as Views
from promotion_insights WHERE f_id = '2' AND p_id = '12'
AND created_at BETWEEN '2012-08-15' AND '2012-08-19'
GROUP BY this_date
結果は次のようになります
----------------------
this_date View
---------------------
15 Aug 2012 3
16 Aug 2012 2
----------------------
カレンダーテーブルとストアドプロシージャもあります。calendarテーブルには、(datefield)という名前の日付の列が1つあります。ストアドプロシージャを呼び出して日付を既に生成しているので、心配する必要はありません。今私が欲しいのは、カレンダーテーブルを持つ上記のテーブル(this_date列とview列)に日付ベースで右結合して、ユーザーが選択した間のall_datesを表示し、ビューが0の日付に0を設定することです。count(*)も0ではなく1を返すことで問題を引き起こしています
私が望む結合によって期待される出力は次のようになります:
----------------------
this_date View
---------------------
15 Aug 2012 3
16 Aug 2012 2
17 Aug 2012 0
18 Aug 2012 0
19 Aug 2012 0
----------------------
どんな助けでも大歓迎です。