(修訂版)
我有兩個表像下面獲取引起的,包括不存在日期的給定範圍內的所有日期
表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
我想從這個表中數據如下圖所示:
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
我想用下面的查詢來獲得這樣的數據:
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;
但我不是成功的。我得到如下的結果:
1 | 2016-08-10 | 1
2 | 2016-08-09 | 1
請問您能解釋一下預期的輸出嗎? – 1000111
輸出應顯示每個服務訂閱計數在特定日期,在哪裏導致 – Ali
這是不可能的,除非你從「日曆」表獲得幫助。但是這樣做肯定會加劇代碼的美感。最好在應用程序級別做這件事。 – 1000111