Как эти два запроса могут быть разными.Я имею в виду, что первый запрос не включал все строки из моей левой таблицы, поэтому я поместил условия в часть соединения.
Запрос 1
SELECT COUNT(*) as opens, hours.hour as point
FROM hours
LEFT OUTER JOIN tracking ON hours.hour = HOUR(FROM_UNIXTIME(tracking.open_date))
WHERE tracking.campaign_id = 83
AND tracking.open_date < 1299538799
AND tracking.open_date > 1299452401
GROUP BY hours.hour
Запрос 2
SELECT COUNT(*) as opens, hours.hour as point
FROM hours
LEFT JOIN tracking ON hours.hour = HOUR(FROM_UNIXTIME(tracking.open_date))
AND tracking.campaign_id = 83
AND tracking.open_date < 1299538799
AND tracking.open_date > 1299452401
GROUP BY hours.hour
Разница в том, что первый запрос дает мне 18 строк, где нет строк между точками 17-22. Но когда я запускаю второй запрос, он показывает полностью24 строки, но для строк между 17 и 22 он имеет значение 1 !Я бы ожидал, что это будет 0 или NULL?Если это действительно 1, не должно ли оно появиться в первом запросе?
Как это произошло?