Olá, estava testando e tentei adicionar um Join em uma instrução do professor, porém obtive um resultado diferente e não entendi o que houve, por favor me ajudem a entender, segue o que fiz:
select a.nome, m.data from aluno a join matricula m on m.aluno_id = a.id where exists (select m.id from matricula m where m.aluno_id = a.id and m.data < now() - interval 45 day);
me trouxe:
+----------------+---------------------+
| nome | data |
+----------------+---------------------+
| João da Silva | 2013-11-25 16:16:05 |
| Frederico José | 2013-05-25 16:16:25 |
| Alberto Santos | 2013-07-21 16:16:30 |
| Renata Alonso | 2013-11-15 16:15:35 |
| Frederico José | 2012-01-04 00:00:00 |
+----------------+---------------------+
5 rows in set (0.00 sec)
e
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);
me trouxe:
+----------------+
| nome |
+----------------+
| João da Silva |
| Frederico José |
| Alberto Santos |
| Renata Alonso |
+----------------+
4 rows in set (0.00 sec)
Esse segundo foi um exercicio do professor, vejam q o nome Frederico repetiu em duas datas diferentes no primeiro caso que tentei adicionar o join com o exists...
como poderia fazer isso sem que duplicasse...