Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Selecionando curso e aluno

No primeiro vídeo queremos selecionar o nome da tabela ALUNO e da tabela CURSO e depois devemos fazer o join. Isso eu entendi perfeitamente. No entanto não consegui entender unicamente o porquê de fazermos o "select.aluno.nome, curso.nome (até aqui tudo certo) from aluno". Essa select não deveria buscar apenas da tabela ALUNO ("from aluno")? Mas o "curso.nome" se refera à tabela CURSO. Fiquei na dúvida. Basta escolher qualquer uma das tabelas?

2 respostas
solução!

Se eu entendi bem a sua dúvida é de onde começar o FROM, certo? Se for isso não existe regra mas sim boas práticas. É interessante "traçar um caminho" por ser mais legível, Neste caso é interessante começar de aluno->matricula->curso ou curso->matricula->aluno. Mas nada impede de começar de matrícula se você fizer os joins certos.

Como nesse exemplo temos ALUNO, CURSO e MATRICULA, e MATRICULA tem a referência de ALUNO e CURSO, temos que fazer o join entre essas 3 tabelas, não importando a ordem. Você pode conferir testando esse código que começa com a MATRICULA:

select a.nome, c.nome 
from matricula m 
join aluno a on m.aluno_id = a.id 
join curso c on c.id = m.curso_id;

Este que começa com CURSO:

select a.nome, c.nome 
from curso c 
join matricula m on m.curso_id = c.id 
join aluno a on a.id = m.aluno_id;

E você vai perceber que geram os mesmos resultados da query feita no curso.

Agora eu entendi! Muito obrigado mesmo!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software