Índice:
Definição - O que significa Self-Join?
Uma junção automática, também conhecida como junção interna, é uma instrução de linguagem de consulta estruturada (SQL) em que uma tabela consultada é associada a ela mesma. A instrução de junção automática é necessária quando dois conjuntos de dados, dentro da mesma tabela, são comparados.
Techopedia explica a auto-junção
Como exemplo, há 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 ao meio para executar duas consultas separadas: funcionários (primeira tabela) e gerentes (segunda tabela). Isso é alcançado executando a seguinte consulta SQL de exemplo:
SELECIONE a.employee_name, b.employee_name como Manager_name
DE funcionários como a, funcionários como b
WHERE a.manager_id = b.employee_id
É essencial compreender o conceito e as circunstâncias de auto-junção 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.