Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 05 de Outubro de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
60 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  JOIN's
Publicado por ActiveDelphi : Domingo, Janeiro 29, 2006 - 11:14 GMT-3 (5755 leituras)
Comentários 1 Comentário   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Administrador Para aqueles que tinham dúvidas quanto ao funcionamento dos JOIN's das tabelas no SQL, desenvolvi um pequeno tutorial de apoio...

Tabelas e seus registros:


TABELA_A

Codigo

Nome

1

um

2

dois

3

três

4

quatro

5

cinco

 

TABELA B

Lanca

Codigo

Valor

1

1

1.000

2

1

2.000

3

1

5.000

4

2

4.000

5

2

9.000

6

3

7.000

7

5

4.000

8

8

7.000

 

Para a relação entre as tabelas temos:
3 registros para a empresa 1 (que existe na tabela de empresas);
2 registros para a empresa 2 (que existe na tabela de empresas);
1 registros para a empresa 3 (que existe na tabela de empresas);
0 registros para a empresa 4 (que existe na tabela de empresas);
1 registros para a empresa 5 (que existe na tabela de empresas);
1 registros para a empresa 8 (que NÃO existe na tabela de empresas);

Agora vamos ver como ficariam as pesquisas* (SELECT's) com os JOIN's ( INNER, [ LEFT | RIGHT | FULL ] OUTER ):

* Para tais pesquisas vamos usar a seguinte linguagem:

SELECT [CAMPOS]
FROM "TABELA_DA_ESQUERDA"
[INNER] JOIN | {LEFT | RIGHT | FULL } [OUTER]} JOIN "TABELA_DA_DIREITA"

1) INNER JOIN:
SELECT A.NOME "A.NOME",
B.VALOR "B.VALOR"
FROM TABELA_A A
INNER JOIN TABELA_B B ON B.CODIGO = A.CODIGO

 


A.NOME

B.VALOR

1

UM

1.000

2

UM

2.000

3

UM

5.000

4

DOIS

4.000

5

DOIS

9.000

6

TRÊS

7.000

7

CINCO

4.000



Nas pesquisas com INNER JOIN o resultado trará somente as linhas que sejam comum nas 2 tabelas, ligadas pelos campos das tabelas em questão na pesquisa.

2) LEFT OUTER JOIN:
SELECT A.NOME "A.NOME",
B.VALOR "B.VALOR"
FROM TABELA_A A
LEFT OUTER JOIN TABELA_B B ON B.CODIGO = A.CODIGO
 


A.NOME

B.VALOR

1

UM

1.000

2

UM

2.000

3

UM

5.000

4

DOIS

4.000

5

DOIS

9.000

6

TRÊS

7.000

7

QUATRO

NULL

8

CINCO

4.000

 

Nas pesquisas com LEFT OUTER JOIN o resultado trará todas os registros que estejam na tabela da esquerda do JOIN (neste caso é a TABELA_A) ao menos 1 vez, mesmo que não tenham registros na tabela da direita do JOIN (neste caso é a TABELA_B) ligadas à tabela da esquerda, como é o caso da linha 7.

 

3) RIGHT OUTER JOIN:
SELECT A.NOME "A.NOME",
B.VALOR "B.VALOR"
FROM TABELA_A A
RIGHT OUTER JOIN TABELA_B B ON B.CODIGO = A.CODIGO


A.NOME

B.VALOR

1

UM

1.000

2

UM

2.000

3

UM

5.000

4

DOIS

4.000

5

DOIS

9.000

6

TRÊS

7.000

7

CINCO

4.000

8

NULL

7.000

 

Nas pesquisas com RIGHT OUTER JOIN o resultado trará todas os registros que estejam na tabela da direita do JOIN (neste caso é a TABELA_B) ao menos 1 vez, mesmo que não tenham registros na tabela da esquerda do JOIN (neste caso é a TABELA_A) ligadas à tabela da direita, como é o caso da linha 8.

 

4) FULL OUTER JOIN:
SELECT A.NOME "A.NOME",
B.VALOR "B.VALOR"
FROM TABELA_A A
FULL OUTER JOIN TABELA_B B ON B.CODIGO = A.CODIGO


A.NOME

B.VALOR

1

UM

1.000

2

UM

2.000

3

UM

5.000

4

DOIS

4.000

5

DOIS

9.000

6

TRÊS

7.000

7

QUATRO

NULL

8

CINCO

4.000

9

NULL

7.000

 

Nas pesquisas com FULL OUTER JOIN o resultado trará todas os registros, ao menos 1 vez, que estejam nas 2 tabelas, tanto a da esquerda do JOIN (neste caso é a TABELA_A) quanto a da direita do JOIN (neste caso é a TABELA_B), como é o caso das linhas 7 e 9. O FULL poderíamos dizer que é uma junção entre o LEFT OUTER JOIN e o RIGHT OUTER JOIN.

_____________________________________________________

Sedinei K. Oliveira - Desenvolvedor

sedinei@teccos.com.br
------------------------
TECCOS Tecnologia
Duplo Z Informática
------------------------
Fone:(51)3527-6619



Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: ticoagape (rralmeida@ig.com.be) : Fev 07, 2006 - 10:28
(Informações sobre o membro | Enviar uma mensagem) http://
Muito simples a explicação, por isso faz dela inteligente e útil...
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados