Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wesley F Souza

Para quê serve e como fazer, INNER JOIN?

Recommended Posts

É o seguinte pessoal, dúvidas a parte mas vamos simbora.

Inclui registros no banco de dados e preciso que a partir do que aparece na coluna CATEGORIAS pegar da ao invés da coluna mas na tabela, categorias o id, pq na outra tabela foi inserida o nome da categoria e agora eu preciso do id, então pensei no INNER JOIN mas, não sei pra que serve e como fazer e será que pro meu problema o INNER JOIN é o correto?

 

 

Obrigado aguardo resposta!

Compartilhar este post


Link para o post
Compartilhar em outros sites

serve para 'juntar' duas ou mais tabelas/views seguindo o criterio(a clausua ON) geralemente o de igualdade.

 

tendo como exemplo categorias e produtos.

 

inner - junção interna ou seja vai trazer todas linhas onde os campos chaves tenham correspondencia.

left - vai trazer todos os registros da tabela q esta no from, e vai tentar combinar com a outra tabela, quando não combinandos os campos da tabela no join viram em brancos.

right - o opostos do left.

natural - quando os campos das 2 ou mais tabelas tem o mesmo nome a clausula ON pode omitida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

serve para 'juntar' duas ou mais tabelas/views seguindo o criterio(a clausua ON) geralemente o de igualdade.

 

tendo como exemplo categorias e produtos.

 

inner - junção interna ou seja vai trazer todas linhas onde os campos chaves tenham correspondencia.

left - vai trazer todos os registros da tabela q esta no from, e vai tentar combinar com a outra tabela, quando não combinandos os campos da tabela no join viram em brancos.

right - o opostos do left.

natural - quando os campos das 2 ou mais tabelas tem o mesmo a clausula ON pode omitida.

 

Exemplo: eu tenho a palavra Testando inserido em uma "COLUNA" com a tabela nome teste e eu preciso pegar o id dessa pela palavra mas o id esta na tabela CATEGORIAS como eu faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tabela categorias

 

id_categoria|categoria
    1      | livros
    2      | camisetas
    3      | sapatos
    4      | canecas

 

 

 

 

tabela produtos

 

id_produto|id_categoria|produto
   1     |     1      | sql na pratica
   2     |     1      | php na pratica
   3     |     2      | Camisa tanho P
   4     |     2      | Camisa tanho M
   5     |     3      | Caneca lisa

 

 

INNER JOIN

select * from categorias as c
inner join produtos as p on c.id_categoria = p.id_categoria

resultado: veja q os 'produtos' da categoria sapatos não aparecerem na lista, pq n existe, logo n satisfaz a condição (clasula ON) e o tipo de junção nesse caso a interna(INNER)

id_categoria|categoria|id_produto|id_categoria|produto
     1     |livros   |     1    |  1         |sql na pratica
     1     |php      |     2    |  1         |php na pratica
     2     |camisetas|     3    |  2         |camiseta tamanho P
     2     |camisetas|     4    |  2         |camiseta tamanho M
     4     |canecas  |     5    |  4         |caneca lisa

 

 

----------------------------------------------------------------------------------------------------

 

select * from categorias as c 
left join produtos as p on c.id_categoria = p.id_categoria

resultado: veja o resultado mudou um pouco, agora sapatos tbm aparecem na listagem. a consulta trouxe todas as linhas de categorias e combinadas ou não com a tabela produtos.

id_categoria|categoria|id_produto|id_categoria|produto
     1     |livros   |     1    |  1         |sql na pratica
     1     |php      |     2    |  1         |php na pratica
     2     |camisetas|     3    |  2         |camiseta tamanho P
     2     |camisetas|     4    |  2         |camiseta tamanho M
     4     |canecas  |     5    |  4         |caneca lisa
     3     |sapatos  |    null  | null       | null 

 

---------------------------------------------------------------------------------------

 

 

select * from categorias as c 
natural join produtos 

resultado: esse é mais um dica do q uma 'super funcionalidade', o retorno é uma junção interna igual ao primeiro exemplo

 

 

 

mais exemplos: http://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico/DML/Consultas_Join

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.