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