Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

As repostas do instrutor não parecem ser equivalentes

No exercício 05 do módulo 1, as respostas fornecidas do exercício produzem resultados diferentes. Isso me leva a pensar que elas não são equivalentes, ou, pelo menos uma das duas estão com semântica errada. Vejam:

select a.nome from aluno a 
    -> where 
    -> not exists 
    ->   (select m.id from matricula m 
    ->    where m.aluno_id = a.id and m.data > now() - interval 45 day
    ->   );

resulta em 5 resultados, enquanto

select a.nome from aluno a where exists ( select m.id from matricula m where m.aluno_id = a.id and m.data < now() - interval 45 day);

entrega 4 resultados. Qual delas é a correta, se tem alguma correta de acordo com o exercício?

2 respostas
solução!

Olá Glayderson,

de fato, para a pergunta do exercício em que queremos alunos que não fizeram nenhuma matrícula nos últimos 45 dias, apenas a primeira query está correta.

A segunda query é uma consulta diferente. Fazendo uma tradução, ela procura alunos que fizeram pelo menos uma matrícula a mais do que 45 dias.

Vou atualizar lá o exercício, obrigado pelo feedback.

Olá Lucas,

Obrigado pelo esclarecimento.