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 JOIN como LEFT JOIN intercambiando 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 JOIN mantiene solo las filas coincidentes.
  • LEFT JOIN mantiene todas las filas de la tabla izquierda.
  • RIGHT JOIN mantiene todas las filas de la tabla derecha.
  • CROSS JOIN devuelve todas las combinaciones.
  • El join con coma es lo mismo que CROSS JOIN (y con un filtro WHERE se convierte en un INNER JOIN).