Menu
Coddy logo textTech

Autounión

Parte de la sección Fundamentos del Journey de SQL de Coddy. Lección 46 de 72.

Las autocombinaciones son un tipo diferente de combinación. Hasta ahora, hemos hablado de combinaciones de varias tablas, pero las autocombinaciones se realizan con la misma tabla. Un ejemplo clásico sería una tabla de empleados.

employee_idemployee_namemanager_id
1Minke2
2Temur3
3Tatjana4
4Marinela 

Cada empleado tiene un manager excepto el manager de más alto nivel, y cada manager también es un empleado.

El problema: Para cada empleado queremos conocer el nombre del manager.

SELECT e2.employee_id, e2.employee_name, e1.employee_name as manager_name
FROM employees as e1
JOIN employees as e2 ON e1.employee_id = e2.manager_id

Hacemos una unión entre la misma tabla, excepto que una vez la llamamos e1 y la segunda vez es e2. La unión se realiza entre los campos employee_id y manager_id.

El resultado:

employee_idemployee_namemanager_name
1MinkeTemur
2TemurTatjana
3TatjanaMarinela
challenge icon

Desafío

Intermedio

Tablas y columnas disponibles:

  • friends: id, name, friend_id

Encuentra pares de amigos que sean amigos mutuos (existe amistad mutua cuando el friend_id de la persona A apunta a la persona B Y el friend_id de la persona B apunta a la persona A). Muestra los nombres de ambos amigos en una sola fila. Nombra las columnas friend1 y friend2.

Nota: Incluye en la cláusula WHERE el criterio friend1.id < friend2.id para que no incluya pares duplicados 

Pruébalo tú mismo

-- Une la tabla consigo misma para que una fila pueda mostrar dos personas diferentes
SELECT ____ AS friend1, ____ AS friend2
FROM friends f1
JOIN friends f2 ON ____
-- Mantén solo los pares que se apuntan mutuamente
WHERE ____ AND f1.id < f2.id;
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de SQL