Joins en SQL explicados: INNER, LEFT, RIGHT, CROSS (y el join con coma)
Published: 2026-02-04
Los joins en SQL te permiten combinar filas de dos tablas basadas en columnas relacionadas. Este breve tutorial muestra los cuatro tipos de join principales y explica por qué el join con coma es lo mismo que un CROSS JOIN.
Datos de ejemplo
Usamos dos tablas en todos los ejemplos:
Tabla employees:
| id | name | dept_id |
|---|---|---|
| 1 | Ava | 10 |
| 2 | Ben | 20 |
| 3 | Cara | NULL |
Tabla departments:
| dept_id | dept_name |
|---|---|
| 10 | Sales |
| 20 | Engineering |
| 30 | Support |
Prueba los joins en tu navegador
Puedes ejecutar las consultas de ejemplo directamente en la página. Edita la consulta y haz clic en Run.
INNER JOIN
Devuelve solo las filas que coinciden en ambas tablas.
Resultado: Ava/Sales, Ben/Engineering. Cara se excluye porque no tiene un departamento coincidente, y Support se excluye porque no hay ningún empleado en el dept 30.
LEFT JOIN (LEFT OUTER JOIN)
Devuelve todas las filas de la tabla izquierda, más las filas coincidentes de la tabla derecha. La parte derecha que no coincide se convierte en NULL.
Resultado: Ava/Sales, Ben/Engineering, Cara/NULL. Se mantienen todos los empleados.
RIGHT JOIN (RIGHT OUTER JOIN)
Devuelve todas las filas de la tabla derecha, más las filas coincidentes de la tabla izquierda. La parte izquierda que no coincide se convierte en NULL.
Resultado: Ava/Sales, Ben/Engineering, NULL/Support. Se mantienen todos los departamentos.
Nota: Muchos desarrolladores prefieren reescribir
RIGHT JOINcomoLEFT JOINintercambiando el orden de las tablas, por legibilidad y consistencia.
CROSS JOIN
Devuelve el producto cartesiano (todas las combinaciones) de las dos tablas.
Resultado: 3 × 3 = 9 filas (cada empleado combinado con cada departamento).
Join con coma (sintaxis heredada)
El join con coma es lo mismo que un CROSS JOIN. Enumera las tablas separadas por comas en la cláusula FROM:
Esto produce el mismo producto cartesiano que CROSS JOIN. Si añades un filtro en la cláusula WHERE, se comporta como un INNER JOIN:
Aunque sigue siendo válida, la sintaxis con coma se considera obsoleta porque mezcla la lógica de joins con los filtros y puede ser más difícil de leer. Es preferible la sintaxis explícita JOIN ... ON.
DbGate: LEFT JOIN automáticos al expandir columnas
En el navegador de datos de DbGate, al expandir una columna de clave foránea se genera automáticamente una consulta con un LEFT JOIN para traer los datos relacionados sin eliminar filas de la tabla principal. Esto mantiene intacto tu conjunto de datos base mientras hace que los campos relacionados estén disponibles de inmediato.
Resumen
INNER JOINmantiene solo las filas coincidentes.LEFT JOINmantiene todas las filas de la tabla izquierda.RIGHT JOINmantiene todas las filas de la tabla derecha.CROSS JOINdevuelve todas las combinaciones.- El join con coma es lo mismo que
CROSS JOIN(y con un filtroWHEREse convierte en unINNER JOIN).