Menu
CoddyTech

Auto JOIN

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

Las autocombinaciones son distintos tipos de combinaciones. 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 employees.

employee_idemployee_namemanager_id
1Minke2
2Temur3
3Tatjana4
4Marinela 

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

El problema: Para cada empleado queremos saber el nombre de su gerente.

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, pero una vez la llamamos e1 y la segunda vez la llamamos 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 una 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 f1.id < f2.id (f1 y f2 son los alias de las dos copias de la tabla) para que no incluya pares duplicados 

Pruébalo tú mismo

-- Une la tabla consigo misma para que una fila pueda mostrar a dos personas diferentes
SELECT ____ AS friend1, ____ AS friend2
FROM friends f1
JOIN friends f2 ON ____
-- Conserva solo los pares que se señalan 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