MySQL sẽ không phát minh ra các hàng cho bạn, vì vậy nếu dữ liệu không có ở đó, chúng sẽ tự nhiên không được hiển thị.
Bạn có thể tạo một bảng lịch và tham gia vào đó,
create table calendar (
day date primary key,
);
Điền vào bảng này với ngày tháng (dễ dàng với một thủ tục được lưu trữ hoặc chỉ một số tập lệnh chung), cho đến khoảng năm 2038 và một cái gì đó khác có thể sẽ phá vỡ đơn vị và trở thành một vấn đề.
Khi đó, truy vấn của bạn sẽ trở thành ví dụ:
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;
Giờ đây, bạn có thể mở rộng bảng lịch với các cột khác cho bạn biết tháng, năm, tuần, v.v. để bạn có thể dễ dàng tạo thống kê cho các đơn vị thời gian khác. (và những người theo chủ nghĩa thuần túy có thể tranh luận rằng bảng lịch sẽ có khóa chính là số nguyên id mà bảng nhật ký tham chiếu thay vì ngày tháng)