Consulta SQL com JOIN e filtro de nota
Gabarito: letra A. A consulta retorna os nomes dos estudantes e das disciplinas apenas para as matrículas com nota maior ou igual a 8, unindo as três tabelas por meio de INNER JOIN. O resultado é uma lista de pares (nome do estudante, nome da disciplina) que atendem ao critério de nota.
A consulta SQL apresentada utiliza a cláusula JOIN para combinar registros de três tabelas: ESTUDANTES, MATRICULAS e DISCIPLINAS. O INNER JOIN é o tipo de junção padrão no SQL e retorna apenas as linhas que possuem correspondência em ambas as tabelas envolvidas. Neste caso, a junção é feita entre ESTUDANTES e MATRICULAS pela chave id_estudante, e entre MATRICULAS e DISCIPLINAS pela chave id_disciplina. Isso significa que apenas os estudantes que possuem matrícula e as disciplinas que possuem matrícula correspondente serão incluídos no resultado.
O filtro WHERE m.nota >= 8 é aplicado após a junção, selecionando apenas as matrículas cuja nota seja maior ou igual a 8. Portanto, o resultado final contém apenas os pares de estudante e disciplina cuja matrícula atende a esse critério. É importante notar que a consulta não utiliza LEFT JOIN ou RIGHT JOIN, que incluiriam registros sem correspondência; o INNER JOIN exclui qualquer linha que não tenha par em ambas as tabelas.
Na prática, se um estudante não tiver nenhuma matrícula, ele não aparecerá no resultado, mesmo que tenha nota alta em alguma disciplina (o que seria impossível sem matrícula). Da mesma forma, se uma disciplina não tiver nenhum estudante matriculado, ela também não aparecerá. O resultado é uma lista de pares (nome do estudante, nome da disciplina) para cada matrícula com nota >= 8.
A pegadinha desta questão está em entender que o INNER JOIN elimina registros sem correspondência. Se a consulta usasse LEFT JOIN, por exemplo, estudantes sem matrícula apareceriam com valores nulos para disciplina. Mas como é INNER JOIN, apenas os pares com matrícula válida e nota >= 8 são retornados. Além disso, é preciso observar que a consulta não usa DISTINCT, então se um estudante tiver duas matrículas na mesma disciplina com nota >= 8, ele aparecerá duas vezes no resultado.
Para resolver a questão, é necessário analisar as tabelas fornecidas nas imagens e aplicar o filtro de nota. O resultado correto é aquele que lista os pares de nomes que atendem à condição nota >= 8.
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa A apresenta o resultado correto da consulta, listando os pares de nomes de estudantes e disciplinas cujas matrículas têm nota maior ou igual a 8. A consulta usa INNER JOIN, que combina apenas as linhas com correspondência nas três tabelas, e o filtro WHERE m.nota >= 8 seleciona apenas as matrículas que atendem ao critério. Portanto, o resultado é exatamente o conjunto de pares (nome do estudante, nome da disciplina) que satisfazem a condição.
Alternativa B — ❌ Incorreta
A alternativa B está incorreta porque apresenta um resultado que não corresponde ao filtro de nota. Provavelmente inclui matrículas com nota menor que 8, ou omite algumas matrículas com nota >= 8. O INNER JOIN com o filtro WHERE m.nota >= 8 garante que apenas as matrículas com nota alta sejam retornadas, então qualquer resultado que inclua notas abaixo de 8 está errado.
Alternativa C — ❌ Incorreta
A alternativa C está incorreta porque provavelmente usa um tipo de junção diferente, como LEFT JOIN, que incluiria estudantes ou disciplinas sem matrícula correspondente. Como a consulta usa INNER JOIN, o resultado não pode conter linhas com valores nulos para nome de estudante ou disciplina. Se a alternativa C apresenta tais linhas, ela está errada.
Alternativa D — ❌ Incorreta
A alternativa D está incorreta porque provavelmente inverte a ordem dos nomes ou apresenta um resultado que não corresponde à condição de nota. A consulta seleciona e.nome e d.nome, nessa ordem, então o resultado deve ter o nome do estudante primeiro e o da disciplina depois. Se a alternativa D apresenta os nomes em ordem trocada ou com filtro incorreto, ela está errada.
Alternativa E — ❌ Incorreta
A alternativa E está incorreta porque provavelmente inclui matrículas com nota menor que 8 ou omite algumas com nota >= 8. O filtro WHERE m.nota >= 8 é claro: apenas notas maiores ou iguais a 8 são consideradas. Qualquer resultado que não reflita exatamente esse critério está errado.
Gabarito: letra A