2016-11-17 66 views
0

我試圖執行查詢以獲取between數據值。SQL查詢:BETWEEN

我在這裏看到了一些問題,但我的查詢更復雜。

這是查詢:

SELECT calendar.datefield AS DATE, 
IFNULL(count(lead.insertDate) , 0) AS task 
FROM lead 
RIGHT JOIN calendar ON (DATE(lead.insertDate) = calendar.datefield) 
AND lead.lpid = '40' 
WHERE insertDate BETWEEN '2016-01-05' AND '2016-01-23' 
GROUP BY DATE 

我認爲這個問題是在查詢語法,查詢工作良好,直到我加入where行。

+0

當你添加「where」行時,你會得到什麼信息? – CGritton

+0

請參閱http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-查詢 – Strawberry

+0

你有什麼數據類型爲insertDate? –

回答

1

您已將條件放在where子句之外。嘗試這個。

SELECT calendar.datefield AS DATE, 
IFNULL(count(lead.insertDate) , 0) AS task 
FROM lead 
RIGHT JOIN calendar ON (DATE(lead.insertDate) = calendar.datefield) 
WHERE insertDate BETWEEN '2016-01-05' AND '2016-01-23' 
AND lead.lpid = '40' 
GROUP BY DATE 
+0

如果在'WHERE'子句中包含'AND lead.lpid ='40'',那麼它就像'inner join'一樣。但他正在嘗試'LEFT JOIN'。 – Viki888

+0

我看不到OP要求左連接。 – FallAndLearn

+0

對不起,它是'RIGHT JOIN'。如果這個條件放在'WHERE'子句中,那麼它就像'INNER JOIN'一樣。 – Viki888