Tomando o exemplo:
SELECT ALUNO.NOME FROM ALUNO WHERE EXISTS(
SELECT MATRICULA.ID FROM MATRICULA
WHERE MATRICULA.ALUNO_ID = ALUNO_ID);
Este trecho pega todos alunos que constam na seleção
de matricula.
Minha duvida é a seguinte.. se na seleção mais de dentro eu consigo extrair apenas o ID da MATRICULA, como que a partir dessa informação eu consigo saber os alunos(MATRICULA.ALUNO_ID) que constam em cada MATRICULA.ID, esta informação não deveria ser obtida através de um select de ALUNO_ID ? Quando uso o SELECT mesmo pegando apenas uma coluna (matricula.id) o Oracle tem acesso a todas colunas da tabela? Como por exemplo,a partir de cada matricula.id pode acessar aluno_id e entende que matricula.aluno_id é a foreign key de aluno.id..