🔍 O que é o SELF JOIN?
O SELF JOIN é uma operação em SQL que permite unir uma tabela a si mesma. Essa técnica é útil quando os dados dentro de uma única tabela estão relacionados entre si, como em estruturas hierárquicas ou comparativos de registros.
🎯 Quando utilizar o SELF JOIN?
O SELF JOIN é amplamente utilizado nos seguintes cenários:
✅ Relações hierárquicas: Estruturas de gerentes e subordinados dentro de uma empresa.
✅ Comparar registros: Identificar relações entre elementos da mesma tabela.
✅ Análises de dependência: Localizar dependências entre elementos armazenados em uma única tabela.
Exemplo comum: Uma tabela de funcionários, onde cada empregado tem um gerente também registrado na mesma tabela.
🏗 Estrutura da Tabela D2D_Employees
Antes de vermos o exemplo prático do SELF JOIN, considere a seguinte estrutura de tabela:
CREATE TABLE D2D_Employees (
Employee_id INT PRIMARY KEY,
Employee_Name VARCHAR(100),
Manager_id INT
);
📥 Inserindo Dados de Exemplo
INSERT INTO D2D_Employees (Employee_id, Employee_Name, Manager_id) VALUES
(1, 'Alice', NULL), -- Alice é CEO e não tem gerente
(2, 'Bob', 1), -- Bob trabalha para Alice
(3, 'Charlie', 1), -- Charlie trabalha para Alice
(4, 'David', 2), -- David trabalha para Bob
(5, 'Eve', 2); -- Eve trabalha para Bob
A hierarquia se apresenta assim:
-
Alice (CEO)
-
Bob (Gerente subordinado a Alice)
-
David (Subordinado a Bob)
-
Eve (Subordinada a Bob)
-
-
Charlie (Gerente subordinado a Alice)
-
🔄 Exemplo de Uso do SELF JOIN
Para listar os funcionários e seus respectivos gerentes, utilizamos o SELF JOIN da seguinte maneira:
SELECT
E.Employee_Name AS Employee,
M.Employee_Name AS Manager
FROM
D2D_Employees E
LEFT JOIN D2D_Employees M
ON E.Manager_id = M.Employee_id;
Explicação:
- A tabela D2D_Employees está sendo unida a si mesma.
- A tabela E representa os funcionários.
- A tabela M representa os gerentes.
- A junção é feita com base no Manager_id de cada funcionário, que corresponde ao Employee_id do gerente.
📊 Resultado Esperado:

🔎 Explicação:
-
A tabela D2D_Employees está sendo unida a si mesma.
-
Alias E representa os funcionários e alias M representa os gerentes.
-
A junção acontece no campo Manager_id, que referencia o Employee_id do gerente correspondente.
🛠 Aplicabilidade Prática do SELF JOIN
O SELF JOIN é uma ferramenta poderosa em vários cenários empresariais, como:
📌 📋 Relatórios de RH: Exibir estrutura hierárquica de empregados e seus gerentes. 📌 📊 Análises organizacionais: Entender relações de subordinação dentro de um departamento. 📌 🏢 Estruturas de Comando: Representar cadeias de comando dentro de uma organização.
🏁 Conclusão
O SELF JOIN é essencial quando dados dentro de uma mesma tabela estão inter-relacionados. Ele é amplamente usado para analisar hierarquias, comparar registros, e entender relações internas. Ao utilizá-lo corretamente, você pode extrair insights valiosos e melhorar suas análises de dados.
🔹 Lembre-se: O uso do SELF JOIN deve ser feito com eficiência para evitar consultas desnecessárias que possam impactar o desempenho do banco de dados. 🚀