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_id | employee_name | manager_id |
| 1 | Minke | 2 |
| 2 | Temur | 3 |
| 3 | Tatjana | 4 |
| 4 | Marinela |
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_idHacemos 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_id | employee_name | manager_name |
|---|---|---|
| 1 | Minke | Temur |
| 2 | Temur | Tatjana |
| 3 | Tatjana | Marinela |
Desafío
IntermedioTablas 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;Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Más palabras clave
La palabra clave INLa palabra clave BETWEENLa palabra clave LIKELa palabra clave ASRepaso: modelos de teléfonos móviles2Condiciones
Conceptos básicos de las condicionesLa palabra clave ANDLa palabra clave ORLa palabra clave NOTCombinación de múltiples condicionesParéntesisBooleanos5Operaciones aritméticas
Operadores matemáticosColumnas matemáticasLa operación móduloLa función ROUND()3Formato de retorno específico
Valores nulosOrdenar resultados Parte 1Ordenar resultados Parte 2Repaso: empresa de ciberseguridadLimitar el número de registrosRepaso: fábrica de vehículos6Retos introductorios
Repaso - Elecciones parlamentariasRepaso - Detención policial de un criminalRepaso - Envase de bebidas de barRepaso - Diseñar nuevas columnas9Varias tablas
JOIN básico, parte 1JOIN básico, parte 2Repaso: JOINAuto JOINRepaso: auto JOINUNIONSimplificar consultas: palabra clave WITHRepaso: consultas con WITHRepaso: contratista inmobiliario12Funciones de ventana, parte 2
Funciones RANK y DENSE_RANKRepaso: RANK y DENSE_RANKFunción NTILEFunciones de agregaciónCriterios ROWS y RANGEPractica por tu cuenta: Playground de SQL