A questão pede para não usar o EXISTS e sugere usar o "left join, que ainda não aprendemos". No entanto, pode-se usar também o NOT IN?
-- solução conhecida 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 );
-- outra solução select * from aluno a where a.id not in (select aluno_id from matricula where data > now() - interval 45 day );