select a.nome from aluno a where a.id in (select m.aluno_id from matricula m where m.aluno_id = a.id and m.data < now() - interval 45 day);
select a.nome from aluno a where a.id in (select m.aluno_id from matricula m where m.aluno_id = a.id and m.data < now() - interval 45 day);
Matheus, bom dia. A subquery até poderia ser usada mas dependendo da massa de dados seria menos performático. Uma subquery traz todos os valores do seu resultado para comparação com a igualdade da query principal, enquanto o EXISTS para de comparar ao achar a primeira igualdade. Espero que tenha ajudado, Caso ajudei, marque essa resposta como solucionada. Obrigado!
Opa muito obrigado por esclarecer esta dúvida.