Pular para o conteúdo

Oracle: Diferença entre JOIN interno e externo

Dica publicada em Linux / Introdução
Robson Fernando Gomes magotico
Hits: 24.084 Categoria: Linux Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Oracle: Diferença entre JOIN interno e externo

O objetivo desta dica é demonstrar a diferença entre o join interno e externo.

JOIN INTERNO (INNER JOIN)

O Join interno acontece quando desejamos pegar todas informações de duas tabelas distintas, ao contrário do join interno, este tipo de join pega somente as combinações válidas onde não existe valores nulos.

Sintaxe:

SELECT COLUNAS
   FROM TABELA1
INNER JOIN TABELA2
   ON TABELA1.ID=TABELA2.ID_TAB1

Exemplo: Existem duas tabelas distintas, CIDADE e FABRICANTE, farei um join interno:

SELECT * FROM fabricante INNER JOIN cidade ON fabricante.cidade_id = cidade.id

Existe uma maneira mais fácil e menor de fazer este tipo de join, como é exposto abaixo:

Sintaxe:

SELECT CAMPOS
   FROM TABELA1,TABELA2
   WHERE TABELA1.ID=TABELA2.ID_TAB2
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Exemplo:

SELECT * FROM CIDADE,FABRICANTE WHERE CIDADE.ID=FABRICANTE.CIDADE_ID

JOIN EXTERNO (OUTER JOIN)

O Join externo acontece quando desejamos pegar todas informações de duas tabelas distintas. Caso durante a junção da tabelas hajam campos que não tenham valores (null), esses campos serão preenchidos com null. Cabe salientar que é possível escolher qual tabela favorecer neste tipo de join, pode ser a tabela da direita ou da esquerda, como pode ser visto abaixo:

Sintaxe:

SELECT COLUNAS FROM TABELA1
RIGHT/LEFT OUTER JOIN TABELA2 ON TABELA1.ID=TABELA2.ID_TAB1

Cabe salientar que no RIGHT/LEFT é utilizado só uma das opções, RIGHT ou LEFT.

Exemplo: Existem duas tabelas distintas, CIDADE e FABRICANTE, farei um join externo para direita (right) das mesmas:

SELECT * FROM fabricante RIGHT OUTER JOIN cidade ON fabricante.cidade_id = cidade.id

Caso você esteja utilizando o Oracle, o outer join pode ser feito utilizando a notação (+) ao lado tabela que você deseja que seja favorecida:

Sintaxe:

SELECT CAMPOS
   FROM TABELA1,TABELA2
   WHERE TABELA1.ID(+)=TABELA2.ID_TAB2

Exemplo:

SELECT * FROM CIDADE,FABRICANTE WHERE CIDADE.ID(+)=FABRICANTE.CIDADE_ID

Bibliografia:
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Manipulando BigDecimal

Descobrir se uma determinada tabela, sinonimo ou usuário existe no Oracle

Como gerar números aleatórios em Java

Obter data e hora do sistema em Java

Dicas para iniciantes em Linux

Criar disquete de boot de instalação do Debian

Antivírus para Linux? Conheça 4 boas alternativas para seu pinguim

Ubuntu 12.04 LTS - Instalando o Remastersys

Configurando internet via radio no Slackware 10.1

Solução para problemas com Déjà Dup (cópia de segurança)

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.