Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Aula 03 - Selecionando cursos com poucos alunos

No vídeo o professor faz uma seleção para cursos que estão com poucos alunos e usa o seguinte código:

SELECT COUNT(A.ID), C.NOME FROM CURSO C
JOIN MATRICULA M ON M.CURSO_ID = C.ID
JOIN ALUNO A ON A.ID = M.ALUNO_ID
GROUP BY C.NOME
HAVING COUNT(A.ID) < 3;

Antes de ver a solução dele, eu tentei e fiz essa apenas um pouco mais enxuta e deu o mesmo resultado:

SELECT COUNT(M.ID), C.NOME FROM MATRICULA M
JOIN CURSO C ON C.ID = M.CURSO_ID
GROUP BY C.NOME
HAVING COUNT(M.ID) <

Bom, eu pensei assim: A ligação entre curso e aluno é a matricula, e como eu quero saber quantos alunos tem em curso, não preciso usar a tabela aluno, pois se ele faz o curso obrigatoriamente ele está matriculado.

Enfim, minha dúvida é: Teria problemas eu fazer desse jeito ou é só outro modo de pensar e ambas estão certas?

1 resposta
solução!

Oi Thiago,

Seu pensamento está correto.

Realmente é bem comum existirem várias maneiras distintas de escrever um SQL para resolver determinado problema, sendo que o ideal é sempre buscar a maneira mais simples.

Acredito que nesse caso, o SQL que você escreveu acabou ficando mais simples do que o sugerido pelo instrutor.

Bons estudos!