Cláusula JOIN
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
| ||||
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 |