Sie sind auf Seite 1von 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

Das könnte Ihnen auch gefallen