sábado, 5 de outubro de 2013

Os tipos de JOIN: Quais são e como usá-los! (SQL SERVER)

O QUE É JOIN?

Um JOIN(pt:Junção) é a combinação de linhas de uma ou mais tabelas, relacionadas através de campos específicos, geralmente essa relação é feita entre as chaves primárias e estrangeiras das tabelas, veja abaixo os tipos de JOIN e como usá-los.


INNER JOIN

Ele faz a interseção entre as duas tabelas, ou seja pega o campo comum em uma e em outra, tirando do resultado o que não é igual, veja abaixo:






















Na consulta abaixo, foi usado o INNER JOIN, para pegar os dados dos pilotos que

pertenciam a equipe 'FERRARI', comparando o valor da chave primária da tabela EQUIPE com a chave estrangeira da tabela PILOTO, e depois usando a clausula WHERE para trazer apenas a equipe 'FERRARI'.





LEFT JOIN

Ele traz tudo que está do lado esquerdo do JOIN ou seja a primeira tabela, tanto os registros que não se relacionam com a segunda tabela, quanto os que fazem parte da interseção com a segunda tabela.




Na consulta abaixo eu usei o LEFT JOIN(o OUTER é opcional, eu coloco por costume) todas as equipes que possuem piloto, e também as que estão na tabela EQUIPE e não possuem um piloto atrelado a ela através da chave primária.















































RIGHT JOIN

Ele traz tudo que está do lado esquerdo do JOIN ou seja a segunda tabela, tanto os registros que não se relacionam com a primeira tabela, quanto os que fazem parte da interseção com a primeira tabela.


Na consulta abaixo eu usei o RIGHT JOIN(o OUTER é opcional, eu coloco por costume) todos os pilotos que possuem equipe, e também os pilotos que estão na tabela PILOTO e que não tem uma equipe atrelada a ele através da chave primária.



FULL JOIN

Ele traz todos os registros da tabela da esquerda e da tabela da direita independente se fazem ou não interseção veja abaixo:



Na consulta abaixo eu usei o FULL OUTER JOIN(o OUTER é opcional, eu coloco por costume), traz todos os registros das tabelas EQUIPE e PILOTO tanto os que fazem interseção pela chave, quanto os que não fazem.



CROSS JOIN

Ele simplesmente pega todos registros de ambas as tabelas e faz um produto cartesiano entre eles, veja abaixo:


Nenhum comentário:

Postar um comentário