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
Горното ще ви предостави всички потребители с ред в графика. Така че потребителите с брой 0 няма да се покажат.
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
Тази заявка ще избере собственото и фамилното име на потребителя и ще преброи колко пъти този потребителски идентификатор се появява в таблицата с графика.
Това прави чрез групиране по потребителския идентификатор.
Освен това използва ляво присъединяване въз основа на потребителски идентификатор и дата. Важно е да поставите условието за дата тук, за да бъдат избрани всички потребители. Това е така, защото лявото присъединяване ще включва всички потребители, които също не съвпадат. Но ако поставите това в клаузата where, всички потребители няма да бъдат избрани. С други думи, няма да получите нула за 'gerry chandan', ако поставите условието за дата в клаузата where. Вместо това той щеше да бъде изключен от резултатите.