Sei sulla pagina 1di 19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

www.devmedia.com.br
[versoparaimpresso]
Linkoriginal:http://www.devmedia.com.br/articles/viewcomp.asp?
comp=31006

SQL Join: Entenda como fu


nciona o retorno dos dados
Este artigo demonstrar de forma prtica
como funciona cada join do SQL e o que
retornar de dados.

Muitosdesenvolvedorestemadificuldadedesaberqualresultado
retornadodecadajoinnoSQL.Porcontadisso,esseartigofoi
desenvolvidocombaseemestudoseconsultasnaprtica.AFigura1
vainosajudaraentenderosresultadosobtidosdecadajoin.

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

1/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

Figura1JoinsemSQL.
Emcimadessafigura,vamoscriaraestruturaerealizarasconsultas
usandocadajoin.
Paraisso,oprimeiropassocriarastabelasAeB,conformemostrao
cdigodaListagem1.
Maisateno:estepostnotemofocodemelhoresprticas,
normalizaoetc.porisso,serocriadasapenasduastabelassimples
comapenasumcampochamadonomeparavisualizaroresultadode
cadajoin.
Listagem1Criandoastabelas.
CREATETABLETabelaA(
Nomevarchar(50)NULL
)

GO

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

2/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

CREATETABLETabelaB(
Nomevarchar(50)NULL
)

JosegundopassoincluiainserodevaloresnastabelasAeB.A
Listagem2exibeosvaloresqueseroincludosnastabelasAeB.
Listagem2Inclusodedadosnastabelas.
INSERTINTOTabelaAVALUES('Fernanda')
INSERTINTOTabelaAVALUES('Josefa')
INSERTINTOTabelaAVALUES('Luiz')
INSERTINTOTabelaAVALUES('Fernando')

INSERTINTOTabelaBVALUES('Carlos')
INSERTINTOTabelaBVALUES('Manoel')
INSERTINTOTabelaBVALUES('Luiz')
INSERTINTOTabelaBVALUES('Fernando')

Agora,vamosanalisarcadaumdosjoins.

Inner Join
Usandooinnerjoin,conformemostraaFigura2,teremoscomo
resultadotodososregistroscomunsnasduastabelas.

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

3/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

Figura2UsandoInnerJoin.
ParaissoexecutaremososcomandospresentesnaListagem3.
Listagem3UsandoInnerJoin
SELECTa.Nome,b.Nome
FROMTabelaAasA
INNERJOINTabelaBasB
ona.Nome=b.Nome

Naprtica,oresultadoserconformeaFigura3.

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

4/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

Figura3RetornodoInnerJoin.

Left Join
UsandooLeftJoin,conformemostraaFigura4,teremoscomo
resultadotodososregistrosqueestonatabelaA(mesmoqueno
estejamnatabelaB)eosregistrosdatabelaBquesocomunsna
tabelaA.Paraentendermelhor,executaremosocdigopresentena
Listagem4.

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

5/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

Figura4UsandoLeftJoin
Listagem4UsandoLeftJoin
SELECTa.Nome,b.Nome
FROMTabelaAasA
LEFTJOINTabelaBasB
ona.Nome=b.Nome

EnaprticaoresultadoserconformeaFigura5.

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

6/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

Figura5RetornodoLeftJoin.

Right Join

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

7/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

UsandooRightJoin,conformemostraaFigura6,teremoscomo
resultadotodososregistrosqueestonatabelaB(mesmoqueno
estejamnatabelaA)eosregistrosdatabelaAquesocomunsna
tabelaB.Paravermosissonaprtica,executaremososcomandosda
Listagem5.

Figura6UsandoRightJoin
Listagem5UsandoRightJoin
SELECTa.Nome,b.Nome
FROMTabelaAasA
RIGHTJOINTabelaBasB
ona.Nome=b.Nome

OresultadodessescomandoseromesmoapresentadonaFigura7.

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

8/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

Figura7RetornodoRightJoin.

Outer Join

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

9/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

UsandooOuterJoin(conhecidoporFullOuterJoinouFullJoin),
conformemostraaFigura8,teremoscomoresultadotodosos
registrosqueestonatabelaAetodososregistrosdatabelaB.Na
prtica,vocdeveexecutarosmesmoscomandopresentesna
Listagem6.

Figura8UsandoFullOuterJoineFullJoin
Listagem6UsandoFullOuterJoinouFullJoin
SELECTa.Nome,b.Nome
FROMTabelaAasA
FULLOUTERJOINTabelaBasB
ona.Nome=b.Nome

SELECTa.Nome,b.Nome
FROMTabelaAasA
FULLJOINTabelaBasB
ona.Nome=b.Nome

EnaprticaoresultadoserconformeaFigura9.

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

10/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

11/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

Figura9RetornodoFullOuterJoinouFullJoin

Left Excluding Join


NaFigura10temosousodoLeftExcludingJoin,queretornacomo
resultadotodososregistrosqueestonatabelaAequenoestejam
natabelaB.OscomandosdessesjoinestopresentesnaListagem7
eoresultadodessescomandossoapresentadosnaFigura11.

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

12/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

Figura10UsandoLeftExcludingJoin
Listagem7UsandoLeftExcludingJoin
SELECTa.Nome,b.Nome
FROMTabelaAasA
LEFTJOINTabelaBasB
ona.Nome=b.Nome
WHEREb.Nomeisnull

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

13/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

Figura11RetornodoLeftExcludingJoin

Right Excluding Join


UsandooRightExcludingJoin,conformemostraaFigura12,teremos
comoresultadotodososregistrosqueestonatabelaBequeno
estejamnatabelaA.Paravermosissonaprtica,precisamos
executaroscomandosdaListagem8.Comoresultado,teremosos
mesmosregistrosretornadosnaFigura13.

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

14/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

Figura12UsandoRightExcludingJoin.
Listagem8UsandoRightExcludingJoin.
SELECTa.Nome,b.Nome
FROMTabelaAasA
RIGHTJOINTabelaBasB
ona.Nome=b.Nome
WHEREa.Nomeisnull

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

15/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

Figura13RetornodoRightExcludingJoin.

Outer Excluding Join


UsandooOuterExcludingJoin,conformemostraaFigura14,teremos
comoresultadotodososregistrosqueestonatabelaB(queno
estejamnatabelaA)etodososregistrosqueestonatabelaA(que
noestejamnatabelaB).

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

16/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

Figura14UsandoOuterExcludingJoin
Paraisso,executaremosocomandodaListagem9.
Listagem9UsandoOuterExcludingJoin
SELECTa.Nome,b.Nome
FROMTabelaAasA
FULLOUTERJOINTabelaBasB
ona.Nome=b.Nome
WHEREa.Nomeisnullorb.Nomeisnull

SELECTa.Nome,b.Nome
FROMTabelaAasA
FULLJOINTabelaBasB
ona.Nome=b.Nome
WHEREa.Nomeisnullorb.Nomeisnull

EnaprticaoresultadoserconformeaFigura15.

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

17/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

Figura15RetornodoOuterExcludingJoin

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

18/19

06/07/2016

SQLJoin:Entendacomofuncionaoretornodosdados

FernandaSallai

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=31006

19/19

Potrebbero piacerti anche