quarta-feira, 5 de dezembro de 2012

Sql Server JOINs - RIGHT JOIN- Parte 3

Olá pessoal, dando continuidade ao assunto de junções, hoje vamos abordar a junção RIGHT JOIN. A função desse operador é similar a do operador LEFT JOIN, a única mudança fica por conta da tabela que terá todos os seus dados retornados. Neste caso o RIGHT JOIN retornará todos os registros da tabela situada a direita do operador, na tabela da esquerda só serão retornados os dados que tiverem referência da tabela da direita. Vamos exemplificar este caso, utilizando o banco de dados AdventureWorks.

SELECT P.FirstName, P.LastName,  P.BusinessEntityID, E.BusinessEntityID,  E.VacationHours, E.SickLeaveHours
FROM HumanResources.Employee E
RIGHT OUTER JOIN Person.Person P
ON E.BusinessEntityID = P.BusinessEntityID;

Resultado:


Na imagem acima recortei apenas os 10 primeiros registros do resultado (no total são retornados 19972 registros), veja que em todos eles as 3 primeiras colunas, que são da tabela Person, contém algum dado. Como Person está do lado direito do operador RIGHT JOIN todos os registros serão retornados, independente de haver alguma referência na tabela Employee. Vamos ver mais um exemplo utilizando a imagem abaixo:

Se executassemos o seguinte select:

SELECT F.IDFUNC, F.NOME, F.IDDEPAR, D.IDDEPAR, D.DESCRI FROM #FUNCIONARIO F RIGHT JOIN #DEPARTAMENTO D ON F.IDDEPAR = D.IDDEPAR;

Teríamos o seguinte resultado:

Veja que como #DEPARTAMENTO é a tabela a direita do operador RIGHT ela teve todos os seus dados retornados, já os dados da tabela #FUNCIONARIO só são retornados aqueles que possuem departamento.

Nenhum comentário:

Postar um comentário