Fiquei um pouco confuso ainda com essa parte de sub-queries. Qual a vantagem exatamente?
No curso é dado essa query, usando a sub-queries para essa questão: Quantos cursos cada aluno faz
SELECT A.NOME,
(SELECT COUNT(M.ID) FROM MATRICULA M WHERE M.ALUNO_ID = A.ID) AS QUANTIDADE
FROM ALUNO A;
Porém, se eu não tiver enganado e falando besteira, eu poderia fazer usando JOIN:
SELECT A.NOME, COUNT(M.ID) AS QUANTIDADE FROM ALUNO A
JOIN MATRICULA M ON M.ALUNO_ID = A.ID
GROUP BY A.NOME;
Em questão de resultado a única diferença que percebi é que usando sub-queries ele retorna alunos com 0 cursos, e usando JOIN apenas alunos que tenham pelo menos 1 curso cadastrado. Por que acontece isso? E se essa for a única diferença, qual devo usar?