Auto-adesão

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.