Definição – O que significa Self-Join?
Uma auto-junção, também conhecida como junção interna, é uma instrução de linguagem de consulta estruturada (SQL) em que uma tabela consultada é juntada a si mesma. A instrução de self-join é necessária quando dois conjuntos de dados, dentro da mesma tabela, são comparados.
Definirtec explica Self-Join
Por exemplo, existe uma tabela chamada EMPLOYEES que contém três colunas:
- nome do empregado
- ID do Empregado
- ID do gerente de funcionários
Como os gerentes também são funcionários, a coluna MANAGER_ID também contém o ID de outro funcionário que também é o gerente. Para escrever uma consulta para extrair os nomes e IDs de funcionários e gerentes, a tabela deve ser dividida logicamente pela metade para executar duas consultas separadas: funcionários (primeira tabela) e gerentes (segunda tabela). Isso é feito executando a seguinte consulta SQL de amostra:
SELECT a.employee_name, b.employee_name como Manager_name
DE funcionários como a, funcionários como b
ONDE a.manager_id = b.employee_id
Compreender o conceito de autojunção e as circunstâncias é essencial para compreender a instrução SQL acima.
No exemplo, a segunda tabela EMPLOYEES recebe o alias b, que na verdade é um subconjunto da tabela EMPLOYEES completa. No entanto, a condição WHERE força a primeira tabela EMPLOYEES a consultar o gerente de funcionários na segunda tabela EMPLOYEES.