|
Cláusula aplicada à instrução SELECT para mostrar dados relacionados e não relacionados de tabelas através de igualdade, considerando os registros cujos campos possuírem valores e eles forem iguais e também se não possuírem registros sem valores iguais nos campos.
Considere a tabela UF, abaixo:
UF_SIGLA
varchar(2) |
UF_NOME
varchar(20) |
AL |
ALAGOAS |
CE |
CEARA |
SP |
SAO PAULO |
Considere a tabela VENDEDOR, abaixo:
VEN_CODIGO
integer |
VEN_CPF
varchar(11) |
VEN_NOME
varchar(20) |
UF_SIGLA
varchar(2) |
1 |
01234567890 |
BRUNO |
SP |
2 |
12345678901 |
MAURO |
CE |
3 |
23456789012 |
MARIA |
null |
4 |
34567890123 |
DIONE |
PR |
A instrução abaixo:
SELECT *
FROM VENDEDOR V RIGHT OUTER JOIN UF U ON V.UF_SIGLA = U.UF_SIGLA
Irá mostrar:
VEN_CODIGO |
VEN_CPF |
VEN_NOME |
UF_SIGLA |
UF_SIGLA1 |
UF_NOME |
null |
null |
null |
null |
AL |
ALAGOAS |
2 |
12345678901 |
MAURO |
CE |
CE |
CEARA |
1 |
01234567890 |
BRUNO |
SP |
SP |
SAO PAULO |
Pois irá considerar todos os registros da tabela da direita do relacionamento mesmo que não haja um registro correspondente na tabela da esquerda.
Já a instrução abaixo:
SELECT *
FROM VENDEDOR V LEFT OUTER JOIN UF U ON V.UF_SIGLA = U.UF_SIGLA
Irá mostrar:
VEN_CODIGO |
VEN_CPF |
VEN_NOME |
UF_SIGLA |
UF_SIGLA1 |
UF_NOME |
1 |
01234567890 |
BRUNO |
SP |
SP |
SAO PAULO |
2 |
12345678901 |
MAURO |
CE |
CE |
CEARA |
3 |
23456789012 |
MARIA |
null |
null |
null |
4 |
34567890123 |
DIONE |
PR |
null |
null |
Pois irá considerar todos os registros da tabela da esquerda do relacionamento mesmo que não haja um registro correspondente na tabela da direita.
Agora note a instrução abaixo:
SELECT *
FROM VENDEDOR V FULL OUTER JOIN UF U ON V.UF_SIGLA = U.UF_SIGLA
Irá mostrar:
VEN_CODIGO |
VEN_CPF |
VEN_NOME |
UF_SIGLA |
UF_SIGLA1 |
UF_NOME |
null |
null |
null |
null |
AL |
ALAGOAS |
2 |
12345678901 |
MAURO |
CE |
CE |
CEARA |
1 |
01234567890 |
BRUNO |
SP |
SP |
SAO PAULO |
3 |
23456789012 |
MARIA |
null |
null |
null |
4 |
34567890123 |
DIONE |
PR |
null |
null |
Pois irá considerar todos os registros da tabela da direita do relacionamento mesmo que não haja um registro correspondente na tabela da esquerda e vice-versa.
|