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
Výše uvedené vám poskytne všechny uživatele s řádkem v plánu. Uživatelé s počtem 0 se tedy nezobrazí.
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
Tento dotaz vybere křestní jméno a příjmení uživatele a spočítá, kolikrát se toto ID uživatele objeví v tabulce plánu.
Dělá to seskupením podle ID uživatele.
A navíc používá levé připojení na základě ID uživatele a data. Je důležité zde zadat podmínku data, aby byli vybráni všichni uživatelé. Je to proto, že levé spojení bude zahrnovat všechny uživatele, kteří se také neshodovali. Ale pokud to dáte do klauzule where, nebudou vybráni všichni uživatelé. Jinými slovy, nezískáte počet nuly pro 'gerry chandan', pokud vložíte podmínku data do klauzule where. Místo toho by byl vynechán z výsledků.