select tu.mr_fname, tu.mr_lname, count(ts.mr_id) as `count`
from tbl_user tu
inner join tbl_schedule ts on ts.mr_id = tu.mr_id and
ts.sch_date between '2012-01-01' and '2012-08-01'
group by tu.mr_id
Ở trên sẽ giúp bạn có được tất cả những người dùng có một hàng trong lịch trình đó. Vì vậy, những người dùng có số lượng là 0 sẽ không hiển thị.
select tu.mr_fname, tu.mr_lname, count(ts.mr_id) as `count`
from tbl_user tu
left join tbl_schedule ts on ts.mr_id = tu.mr_id and
ts.sch_date between '2012-01-01' and '2012-08-01'
group by tu.mr_id
Truy vấn này sẽ chọn tên và họ của người dùng và đếm số lần id người dùng đó xuất hiện trong bảng lịch biểu.
Nó thực hiện điều này bằng cách nhóm theo id người dùng.
Và thêm vào đó, nó sử dụng kết hợp bên trái dựa trên id người dùng và ngày. Điều quan trọng là đặt điều kiện ngày ở đây để tất cả người dùng được chọn. Điều này là do tham gia bên trái cũng sẽ bao gồm tất cả người dùng không phù hợp. Nhưng nếu bạn đặt điều này vào mệnh đề where, tất cả người dùng sẽ không được chọn. Nói cách khác, bạn sẽ không nhận được số 0 cho 'gerry chandan' nếu bạn đặt điều kiện ngày trong mệnh đề where. Thay vào đó, anh ấy sẽ bị bỏ qua kết quả.