LEFT JOIN не выдает нулевые даты

Ekklipce

Новичок
LEFT JOIN не выдает нулевые даты

SELECT general.date_issue AS legend, COUNT( general.trademark ) AS coun
FROM general
LEFT JOIN dates ON general.date_issue = dates.date_null
GROUP BY dates.date_null
ORDER BY legend DESC

в dates - забиты даты на этот год...
general.date - всякие даты.. естественно не все = какие-то пропущены - вот по ним надо получить 0..
а нули пропускаются ((.. выдаеться только то что реально есть.

пробовал групировать по тем и по тем датам - без толку
 

Falc

Новичок
Ekklipce
У тебя какая-то каша в голове.

Опиши структуру таблиц и что тебе надо сделать.
 

chira

Новичок
наверно так:
Код:
SELECT dates.date_null AS legend, COUNT( general.trademark ) AS coun 
FROM dates 
LEFT JOIN general ON general.date_issue = dates.date_null
GROUP BY dates.date_null 
ORDER BY legend DESC
 

Ekklipce

Новичок
dates - даты от 2004-01-01 до 2004-12-31

general
id, magazine, date_issue
date_issue - дата добавления...

нужно посчитать сумму (там наверно SUM надо юзать вместо COUNT) за нужный промежуток дат.. с промежутками все ок..
но не все ок с нулевыми датами..
считать надо будет много для чего..например - вхождений конкретной записи magazine

например
date_issue количество
2004-01-01 5
2004-01-03 5
2004-01-04 5
2004-01-04 5
2004-01-04 5
2004-01-06 5

надо получить -

2004-01-01 5
2004-01-02 0
2004-01-03 5
2004-01-04 5
2004-01-05 0
2004-01-06 5

наверно это будет :
SELECT general.date_issue AS legend, SUM( general.trademark ) AS coun FROM general LEFT JOIN dates ON general.date_issue = dates.date_null WHERE general.date_issue BETWEEN '2004-01-15' AND '2004-02-15' GROUP BY dates.date_null ORDER BY legend ASC

так как запрос с COUNT "не видит" нулевых результатов
 

chira

Новичок
нужно поменять местами general и dates
Код:
SELECT dates.date_null AS legend
, SUM( general.trademark ) AS coun 
FROM dates
  LEFT JOIN general ON general.date_issue = dates.date_null
WHERE dates.date_null BETWEEN '2004-01-15' AND '2004-02-15'
GROUP BY 1 
ORDER BY 1 ASC
 

Falc

Новичок
Ekklipce
А не проще ли пыхом все даты перебирать и если нет записи то выводить 0, чем дополнительную табличку создавать?
 

Ekklipce

Новичок
Originally posted by Falc
Ekklipce
А не проще ли пыхом все даты перебирать и если нет записи то выводить 0, чем дополнительную табличку создавать?
создать то её не сложно.. другое дело что скорость сильно падает (..

кстати верхний вариант............. все таки пропускает некоторые нули.. :=)))))).... идут даты, идут, потом бац - пару дней отсутствует :))))))..цикр какой-то
 
Сверху