2016-11-17 3 views
0

Я пытаюсь выполнить запрос, чтобы получить значения данных .sql query: 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- query – 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

Если 'AND lead.lpid = '40'' включен в предложение WHERE, он будет действовать как' inner join'. Но он пытается «LEFT JOIN». – Viki888

+0

Я не вижу, чтобы ОП просил левого соединения. – FallAndLearn

+0

Жаль, что это «ПРАВИЛЬНАЯ ВСТУПЛЕНИЕ». Если это условие помещается в предложение WHERE, оно будет действовать как 'INNER JOIN'. – Viki888