我已經將三個表彼此連接起來。 我在查詢關鍵字+統計信息。MYSQL SELECT SUM()BY DATE IF NO MATCH RETURN 0
我需要得到的數據進行按日期範圍,並 如果沒有數據對於特定日期範圍 我想它返回0統計
比方說我的查詢是:
SELECT關鍵字, SUM(stat)FROM keywords WHERE date> ='2012-07-10'GROUP BY關鍵字;
這將返回
| my keyword 1 | 3 |
| my keyword 2 | 6 |
示例表格內容:
| id |關鍵字| stat |日期| keywordGroup |
| 1 |我的關鍵字1 | 2 | 2012-07-11 | 1 |
| 2 |我的關鍵字1 | 1 | 2012-07-12 | 1 |
| 3 |我的關鍵字2 | 6 | 2012-07-11 | 1 |
| 4 |我的關鍵字3 | 10 | 2012-07-09 | 1 |
但有一些關鍵字沒有該日期範圍的統計信息
但我仍然希望將這些關鍵字顯示爲0作爲統計信息。
像這樣:
| my keyword 1 | 3 |
| my keyword 2 | 6 |
| my keyword 3 | 0 |
問題是where子句阻塞未找到的值,是否有解決方法。
正如我所說我有三個關係表,我使用LEFT JOIN到 查詢數據,爲了簡化,我將這部分留在了我的示例查詢中。
表:廣告系列
ID
名
表:KeywordGroup
ID
名
活動
表:KeywordData
ID
關鍵字
統計
日期
keywordGroup
SELECT關鍵字,SUM(STAT)從左路JOIN keywordGroup ON campaigns.id = keywordGroup活動。活動LEFT JOIN keywordData ON keywordGroup.id = keywordData.keywordGroup WHERE keywordData.date> ='2012-07-10'GROUP BY關鍵字 – Jompper 2012-07-16 13:06:50
數據每天都會被插入到keywordData表中,可以說我每天都會記錄Google關鍵字訪問,如果該關鍵字當天沒有訪問,則不會插入任何數據。我仍然需要獲得在我的日期範圍內訪問次數爲0次的關鍵字。嗯,也許我可以像WHERE MAX(日期)<='2012-07-09' – Jompper 2012-07-16 13:12:42
分開查詢那些好,我在這裏看到一個不同的問題。唯一的地方,實際關鍵字文本保存在「keywordData」表中的「關鍵字」列吧? – 2012-07-16 13:13:50