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_id | employee_name | manager_id |
| 1 | Minke | 2 |
| 2 | Temur | 3 |
| 3 | Tatjana | 4 |
| 4 | Marinela |
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_idHacemos 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_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 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;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 celulares2Condiciones
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ículos6Desafíos introductorios
Repaso - Elección parlamentariaRepaso - Detención policial de un criminalRepaso - Recipiente de bebida de barRepaso - Ingeniería de nuevas columnas9Múltiples tablas
Unión básica, parte 1Unión básica, parte 2Repaso: uniónAutouniónRepaso: autouniónUniónSimplificar consultas, palabra clave WITHRepaso: consultas WITHRepaso: contratista inmobiliario12Funciones de ventana, parte 2
Funciones RANK y DENSE_RANKRepaso: RANK y DENSE_RANKFunción NTILEFunciones de agregaciónCriterio ROWS y RANGEPractica por tu cuenta: Playground de SQL