Ir para conteúdo
Fórum Script Brasil
  • 0

Tutorial De Join


kuroi

Pergunta

cópia de um post que fiz em ASP a um tempo atras. resolvi postar aqui pra facilitar o acesso.

Nunca vi isso em escola, apostila nada, então essa explicacao pode não estar 100% correta:

Existem dois tipo de JOIN, o INNER JOIN e o OUTER JOIN. o OUTER JOIN pode ser de tres tipos: LEFT OUTER JOIN, RIGHT OUTER JOIN ou FULL OUTER JOIN. Ou, pra simplificar: LEFT JOIN, RIGHT JOIN ou FULL JOIN.

Pra explicar fica mais facil com um exemplo. Faz de conta que eu tenho essas duas tabelas:

Tabela X

Codigo Nome

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

1 kuroi

2 dackale

3 xxxx

Tabela Y

Codigo Descricao

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

1 a

4 b

5 c

O INNER JOIN seleciona apenas os registros em comum entre AS DUAS TABELAS.

Exemplo:

Select * from X INNER JOIN Y ON X.Codigo = Y.Codigo
Vai voltar:
X.Codigo   Nome      Y.Codigo   Descricao
------------------------------------------
1          kuroi     1          a[/code] Agora, o LEFT JOIN seleciona todos registro que estiverem na tabela da esquerda do JOIN, não importa se existem na segunda tabela ou não. Exemplo:
[code]Select * from X LEFT JOIN Y ON X.Codigo = Y.Codigo
Vai voltar:
X.Codigo   Nome      Y.Codigo   Descricao
------------------------------------------
1          kuroi     1          a
2          dackale   - NULL -   - NULL -
3          xxxx      - NULL -   - NULL -[/code] Onde - NULL - signfica valor nulo. Agora, o RIGHT JOIN faz o contrário, ele seleciona todos os registros da tabela da direita:
[code]Select * from X RIGHT JOIN Y ON X.Codigo = Y.Codigo
Vai voltar:
X.Codigo   Nome      Y.Codigo   Descricao
------------------------------------------
1          kuroi     1          a
- NULL -   - NULL -  4          b
- NULL -   - NULL -  5          C[/code] Note que
[code]Select X.Codigo, Nome, Y.Codigo, Descricao from X LEFT JOIN Y ON X.Codigo = Y.Codigo
é a mesma coisa que
Select X.Codigo, Nome, Y.Codigo, Descricao from Y RIGHT JOIN X ON X.Codigo = Y.Codigo
O FULL JOIN seleciona todos os registros de todas as tabelas. Atencao pra quem esta utilizando outro banco que não o SQL, sei que o FULL JOIN não funciona em Access e tb não testei em outros como MySQL, Oracle, etc. Minha unica certeza é q funciona no SQL Server.
Select * from X FULL JOIN Y ON X.Codigo = Y.Codigo
vai voltar:
X.Codigo   Nome      Y.Codigo   Descricao
------------------------------------------
1          kuroi     1          a
2          dackale   - NULL -   - NULL -
3          xxxx      - NULL -   - NULL -
- NULL -   - NULL -  4          b
- NULL -   - NULL -  5          c[/code] EDITADO: opa valeu, andreia. não conhecia o CROSS JOIN antes, mas to editando o tópico pra por a explicacao aqui. o CROSS JOIN cruza todos os registros da primeira tabela com todos os registros da segunda.
[code]Select * from X CROSS JOIN Y
é o mesmo q
Select * from X, Y
e vai voltar:
X.Codigo   Nome      Y.Codigo   Descricao
------------------------------------------
1          kuroi     1          a
2          dackale   1          a
3          xxxx      1          a
1          kuroi     4          b
2          dackale   4          b
3          xxxx      4          b
1          kuroi     5          c
2          dackale   5          c
3          xxxx      5          c[/code]

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Guest william menano

select a.*,b.*

from nome_banco.dbo.nome_tabela as a inner join nome_banco.dbo.nome_tabela

on a.variavel = b.variavel

ex:

select a.nome_cliente, b.nome_dependente

from bd1.dbo.cliente as a inner join db2.dbo.dependente as b

on a.cpf = b.cpf

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...