(更新)
私のような2つのテーブルを持っているsubscribers
表 存在しない日付を含む所定範囲内のすべての日付のためになりなさい
id | service_id | subscribe_date
1 | 1 | 2016-08-10
2 | 2 | 2016-08-09
3 | 2 | 2016-08-05
4 | 1 | 2016-08-03
表services
:
id | service_name
1 | test1
2 | test2
3 | test2
subscribers.service_id
には、外部キーがあります。services.id
私は以下のように、このテーブルからデータを取得したい:
SELECT COUNT(*), subscribe_date, service_id
FROM subscribers
INNER JOIN services ON subscribers.service_id = services.id
WHERE subscribe_date BETWEEN '2016-08-09' AND '2016-08-10'
GROUP BY service_id, subscribe_date;
しかし、私は成功していないです:私は、クエリ以下に、このデータを取得しようと
service_id | subscribe_date | count
1 | 2016-08-10 | 1
1 | 2016-08-09 | 0
2 | 2016-08-10 | 0
2 | 2016-08-09 | 1
3 | 2016-08-10 | 0
3 | 2016-08-09 | 0
。私は以下の結果が得られます。
1 | 2016-08-10 | 1
2 | 2016-08-09 | 1
期待される出力を教えてください。 – 1000111
出力は、特別な日付の各サービス購読数を表示する必要があります。原因は – Ali
です。あなたが 'calendar'テーブルから助けを借りなければ、それはできません。しかし、これを行うことは間違いなくあなたのコードの美しさを悪化させるでしょう。アプリケーションレベルでこれを行う方がよい。 – 1000111