Olá pessoal, para finalizar a nossa série de artigos sobre os tipos de junções disponíveis no sql server 2008, vamos abordar agora a junção SELF JOIN. Está junção nada mais é do que uma junção entre a mesma tabela, para isso utilizamos um alias para diferenciar as tabelas. Para exemplificar a utilização desse operador vamos utilizar uma tabela temporária como mostro abaixo:
CREATE TABLE #EMPREGADO
(
ID INT ,
IDSUPERIOR INT NULL,
NOME VARCHAR(50)
)
INSERT INTO #EMPREGADO VALUES (1,NULL,'BILL')
INSERT INTO #EMPREGADO VALUES (2,1,'MARIA')
INSERT INTO #EMPREGADO VALUES (3,1,'JOSE')
INSERT INTO #EMPREGADO VALUES (4,2,'CARLOS')
INSERT INTO #EMPREGADO VALUES (5,3,'ANA')
SELECT E.ID, ISNULL(S.NOME,'PRESIDENTE') AS SUPERIOR, E.NOME
FROM #EMPREGADO E LEFT JOIN #EMPREGADO S ON S.ID = E.IDSUPERIOR;
O resultado mostra a lista de empregados e seus superiores:
Veja que no SELF JOIN o operador utilizado é o LEFT JOIN para que o empregado sem superior (presidente) pudesse ser visualizado no resultset. Caso fosse utilizado o INNER JOIN o resultset teria apenas os empregados com chefes. Bom era isso até a próxima!
Nenhum comentário:
Postar um comentário