Diante das aulas de sub-queries, observei que usando o join também poderia chegar ao mesmo resultado da sub-queries. No caso: Sub-queries
select a.nome,
(select count(r.id) from resposta r where r.aluno_id = a.id) as respostas
from aluno a;
Join
select a.nome, count(r.id) from aluno a
join resposta r on a.id = r.aluno_id
group by a.nome
order by a.nome;
A resposta é quando se usa a sub-queries ela te retorna até quem não respondeu, enquanto que no join somente quem respondeu. Por via de regra, ambos podem ser usados em todos os casos? Ou teria restrição?