SELECT P.FirstName, P.LastName, P.BusinessEntityID, E.BusinessEntityID, E.VacationHours, E.SickLeaveHours
FROM Person.Person P
LEFT OUTER JOIN HumanResources.Employee E
ON E.BusinessEntityID = P.BusinessEntityID;
Os 3 primeiros registros retornados do select acima são:
Com base no resultado chegamos a conclusão que no registro 1 temos os campos FirstName, LastName e BusinessEntityID, ambos da tabela Person, e este registro tem uma referência na tabela Employee no campo BusinessEntityID visto que o valor ambos os campos são iguais a 285, logo as colunas E.BusinessEntityID, E.VacationHours e E.SickLeaveHours da tabela Employee tem dados. Porem os outros 2 registros não possuem referência na tabela Employee por isso não existe dados nas colunas E.BusinessEntityID, E.VacationHours e E.SickLeaveHours.
Vimos no exemplo acima que utilizando o operador LEFT JOIN os dados da tabela Person sempre serão retornados, já os da tabela Employee, só serão retornados se existir referência com Person.
Versão do Sql Server utilizada nessa publicação:
Microsoft SQL Server 2008 (SP3) - 10.0.5512.0
Nenhum comentário:
Postar um comentário