Cassic

Cláusula JOIN

Autor: Tadeu Pereira


  Com o comando select em conjunto com o join podemos fazer a junção de duas ou mais tabelas num mesmo resultado.

Sintaxe :

select  Tabela1.Coluna, Tabela1.Coluna, ..., Tabela2.Coluna
from  Tabela1
cláusula join Tabela2 on  Condição


Tabelan
Nome da tabela n
Tabela1.Coluna
Nome de uma coluna da Tabela1
Tabela2.Coluna
Nome de uma coluna da Tabela2
Cláusula
Cláusula do comando join
inner
default
outer
Condição
Cria uma condição para filtrar os dados

Cláusula inner

  Com essa cláusula só serão mostrados os registros com referências nas tabelas da junção.

Exemplo :

select a.Codigo, a.Nome, b.Setor
from Funcion a
inner join Setor b on (b.Codigo = a.Setor)

ou

select a.Codigo, a.Nome, b.Setor
from Funcion a
join Setor b on (b.Codigo = a.Setor)

Resultado


Codigo
Nome
Setor
1
Tadeu
Desenvolvimento
2
Ylane
Manutenção
3
Julian
Desenvolvimento
4
Ewerton
Desenvolvimento
5
João
Manutenção
6
Geraldo
Financeiro

Cláusula outer

  Com essa cláusula serão mostrados todos os registros com ou sem referências nas tabelas da junção.

Exemplo :

select a.Codigo, a.Nome, b.Setor
from Funcion a
left outer join Setor b on (b.Codigo = a.Setor)

Resultado


Codigo
Nome
Setor
1
Tadeu
Desenvolvimento
2
Ylane
Manutenção
3
Julian
Desenvolvimento
4
Ewerton
Desenvolvimento
5
João
Manutenção
6
Geraldo
Financeiro
7
Maria
 

  A palavra reservada left indica que os registros da primeira tabela serão mostrados, independentemente deles terem ou não referência na segunda tabela.  Trocando-se o left por right a ordem é invertida.

Exemplo :

select a.Codigo, a.Nome, b.Setor
from Funcion a
right outer join Setor b on (b.Codigo = a.Setor)

Resultado


Codigo
Nome
Setor
1
Tadeu
Desenvolvimento
2
Ylane
Manutenção
3
Julian
Desenvolvimento
4
Ewerton
Desenvolvimento
5
João
Manutenção
6
Geraldo
Financeiro
 
 
Vendas

  A palavra reservada full indica que todos os registros das duas tabelas serão mostrados, independentemente deles terem ou não referência.

Exemplo :

select a.Codigo, a.Nome, b.Setor
from Funcion a
full outer join Setor b on (b.Codigo = a.Setor)

Resultado


Codigo
Nome
Setor
1
Tadeu
Desenvolvimento
2
Ylane
Manutenção
3
Julian
Desenvolvimento
4
Ewerton
Desenvolvimento
5
João
Manutenção
6
Geraldo
Financeiro
7
Maria
Vendas