Bom dia, pessoal.
Seguinte, enquanto nos exercícios montei uma query que depois vi que não faz muito sentido, mas uma dúvida ficou. Porque no mysql quando eu procuro por registros usando o nome completo de uma tabela um erro é gerado, enquanto que o uso do alias na mesma query produz resultado? Vejam...
select aluno.* from aluno a join matricula m on m.aluno_id = a.id join curso c on c.id = m.curso_id where exists (select 1 from matricula m where a.id = m.aluno_id);
resulta em ERROR 1051 (42S02): Unknown table 'aluno'
enquanto,
select a.* from aluno a join matricula m on m.aluno_id = a.id join curso c on c.id = m.curso_id where exists (select 1 from matricula m where a.id = m.aluno_id);
resulta +----+-----------------+--------------------+ | id | nome | email | +----+-----------------+--------------------+ | 1 | João da Silva | joao@dasilva.com | | 2 | Frederico José | fred@jose.com | | 3 | Alberto Santos | alberto@santos.com | | 4 | Renata Alonso | renata@alonso.com | | 2 | Frederico José | fred@jose.com | +----+-----------------+--------------------+ 5 rows in set (0.00 sec)