MySQLは行を作成しないため、データが存在しない場合、当然、行は表示されません。
カレンダーテーブルを作成して、それに参加することができます
create table calendar (
day date primary key,
);
このテーブルに、2038年頃までの日付(ストアドプロシージャまたは一般的なスクリプトを使用して簡単に)を入力します。他の何かが問題になるユニットを壊す可能性があります。
すると、クエリは次のようになります。
SELECT logTime, COUNT(*)
FROM calendar cal left join logs l on cal.day = l.logTime
WHERE day >= '2011-02-01' AND day <= '2011-02-04' GROUP BY day;
これで、月、年、週などを示す他の列でカレンダーテーブルを拡張できるため、他の時間単位の統計を簡単に作成できます。 (そして純粋主義者は、カレンダーテーブルには日付の代わりにログテーブルが参照するid整数の主キーがあると主張するかもしれません)