Tema SQL
SELF JOIN
Unir una tabla consigo misma con alias distintos.
Descripción
Modela jerarquías (empleado/jefe), grafos simples o pares en la misma tabla. Suele ser INNER o LEFT JOIN entre dos alias (manual §13.6).
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
SELECT a.col, b.col
FROM tabla a
JOIN tabla b ON a.ref_id = b.id;
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- Alias
- Obligatorio para distinguir columnas de cada “copia” lógica.
Ejemplos
Ejemplo 1
SELECT e.nombre AS empleado, j.nombre AS jefe
FROM empleados e
LEFT JOIN empleados j ON e.jefe_id = j.id;
Ejemplo 2
SELECT COUNT(*) FROM empleados a JOIN empleados b ON a.jefe_id = b.id;
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.