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

Dúvida no Ex. 3 da Aula 5 - Juntando dados de várias tabelas

com funciona o inner join, eu não consegui entender muito bem com foi feito para não mostrar as informações da tabela de compradores, qual foi a diferença ??

3 respostas

Partindo do princípio...

No SQL possuímos duas funções que são ótimas para o filtro de dados, são essas as seleções e as projeções.

Tá, mas agora você pode estar se perguntando: O que é isso?

  • As projeções são utilizadas para você selecionar quais serão as informações que aparecerão em uma consulta (ou recuperação, chame como preferir).

Por exemplo: select * from Produto -> Nessa consulta será retornado todos os registros e todas as suas respectivas informações do produto.

Agora, se quisermos que sejam mostrados apenas os nomes de todos os produtos, fazemos uma projeção, que ficaria: select nome from produto

  • A seleção seria o filtro dos registros que seriam selecionados.

Por exemplo, usando o mesmo exemplo de antes, queremos que retorne o nome de todos os produtos que tenham um valor maior que 300 reais, então:

select nome from produto where valor > 300

Juntando a seleção com a projeção, podemos ter uma consulta personalizada a partir dos parâmetros que desejamos.

Com essa parte compreendida, podemos prosseguir...

O inner join é simplesmente a junção de duas tabelas em um único select, em que, geralmente, essas tabelas estão relacionadas entre si.

  • Como mostrar apenas algumas informações com inner join?

Simples, basta juntarmos as tabelas e aplicar os conceitos de projeção e seleção, a partir do que você desejar.

Um exemplo... Em um cenário onde temos a tabela de produtos(contém código, nome, descricao, valor, ..., id_tipo_produto) e a tabela de tipos de produtos (contém código, nome, descricao), podemos fazer com que sejam mostrados todos os produtos e o nome de seus respectivos tipos, assim:

select produto.*, tipo_produto.nome as TIPO_PRODUTO from produto 
join tipo_produto
on 
produto.id_tipo_produto = tipo_produto.id_tipo_produto;

Observações: essa instrução eu fiz usando o banco PostGreSQL e a palavra reservada as é utilizada para definir um nome para a coluna em questão

Simples, não? :D

Qualquer dúvida é só dizer!

Forte abraço!

solução!

Wilker, Bom dia !!

o inner join é a mesma coisa que join , ele funciona mostrará somente dados que se relacionam entres as tabelas .

mas porque está inner join e não somente join , é utilizado o inner join somente por causa da legibilidade , nos próximos cursos você verá que também o left join e right join , então para identificar logo de cara o que está acontecendo utilizamos inner join .

Espero ter ajudado , Bons Estudos

Obrigado pelas ajudas consegui entender.