SQL: SELF JOIN 🔗

🔍 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:

  1. A tabela D2D_Employees está sendo unida a si mesma.
  2. A tabela E representa os funcionários.
  3. A tabela M representa os gerentes.
  4. A junção é feita com base no Manager_id de cada funcionário, que corresponde ao Employee_id do gerente.

 

📊 Resultado Esperado:

Resultado

 

🔎 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. 🚀

Data de Publicação: 04-09-2024

Categoria: SQL