RIGHT JOIN en SQL: qué es, cómo funciona y ejemplos prácticos

El RIGHT JOIN en SQL es una variante de los OUTER JOIN.
Se utiliza para combinar filas de dos tablas devolviendo todas las filas de la tabla derecha y solo las coincidencias de la tabla izquierda.

👉 Si no hay correspondencia en la tabla izquierda, las columnas de esta aparecen como NULL.

Sintaxis básica de RIGHT JOIN

SELECT columnas
FROM tabla1
RIGHT JOIN tabla2
ON tabla1.columna = tabla2.columna;
  • tabla1: tabla izquierda.
  • tabla2: tabla derecha (todas sus filas siempre aparecerán).
  • ON: condición de unión entre columnas.

Ejemplo básico de RIGHT JOIN

Tablas:

clientes

idnombre
1Ana
2Luis
3Carla

pedidos

idcliente_idtotal
11100
22200
34150

Consulta:

SELECT c.nombre, p.total
FROM clientes c
RIGHT JOIN pedidos p
ON c.id = p.cliente_id;

Resultado:

nombretotal
Ana100
Luis200
NULL150

👉 El pedido con cliente_id = 4 aparece aunque no exista ese cliente en la tabla clientes.

Diferencia entre LEFT JOIN y RIGHT JOIN

  • LEFT JOIN: devuelve todas las filas de la tabla izquierda.
  • RIGHT JOIN: devuelve todas las filas de la tabla derecha.

Ejemplo:

-- LEFT JOIN
SELECT c.nombre, p.total
FROM clientes c
LEFT JOIN pedidos p ON c.id = p.cliente_id;

-- RIGHT JOIN
SELECT c.nombre, p.total
FROM clientes c
RIGHT JOIN pedidos p ON c.id = p.cliente_id;

👉 Ambos devuelven los mismos datos, pero el “lado garantizado” cambia.

RIGHT JOIN con múltiples columnas

Podemos unir usando más de una columna:

SELECT e.nombre, p.fecha, p.total
FROM empleados e
RIGHT JOIN pagos p
ON e.id = p.empleado_id AND e.departamento = p.departamento;

RIGHT JOIN con condiciones adicionales

SELECT c.nombre, p.total
FROM clientes c
RIGHT JOIN pedidos p
ON c.id = p.cliente_id
AND p.total > 100;

👉 Filtra pedidos mayores a 100, manteniendo todos los de la tabla derecha.

RIGHT JOIN con agregaciones

Ejemplo con GROUP BY para contar coincidencias:

SELECT p.cliente_id,
       COUNT(c.id) AS coincidencias
FROM clientes c
RIGHT JOIN pedidos p ON c.id = p.cliente_id
GROUP BY p.cliente_id;

👉 Muestra clientes asociados a pedidos, aunque algunos no existan en la tabla clientes.

Ejemplo práctico: asistencia a eventos

eventos

idnombre_evento
1Conferencia SQL
2Workshop BI
3Taller Python

inscripciones

idevento_idparticipante
11Ana
21Luis
32Carla
44Pedro

Consulta:

SELECT e.nombre_evento, i.participante
FROM eventos e
RIGHT JOIN inscripciones i
ON e.id = i.evento_id;

Resultado:

nombre_eventoparticipante
Conferencia SQLAna
Conferencia SQLLuis
Workshop BICarla
NULLPedro

👉 Aparece Pedro, aunque su evento no existe en la tabla eventos.

Errores comunes con RIGHT JOIN

  1. Olvidar la condición ON
    👉 Provoca un producto cartesiano (todas las combinaciones posibles).
  2. Confundir el lado garantizado
    👉 Recordá: en RIGHT JOIN siempre se devuelven todas las filas de la tabla derecha.
  3. Esperar que RIGHT JOIN esté en todos los motores
    👉 En algunos sistemas (como SQLite) no está soportado directamente.
  4. Filtros en WHERE eliminando los NULL
    👉 Si filtramos por columnas de la izquierda con WHERE, eliminamos las filas sin coincidencia.

Ejemplo incorrecto:

SELECT c.nombre, p.total
FROM clientes c
RIGHT JOIN pedidos p ON c.id = p.cliente_id
WHERE c.nombre IS NOT NULL; -- ❌ elimina las filas con NULL

Buenas prácticas con RIGHT JOIN

  • Usar LEFT JOIN en lugar de RIGHT JOIN cuando sea posible (más intuitivo, se suele leer “de izquierda a derecha”).
  • Siempre usar un ON bien definido.
  • Ser claro en qué tabla es la “principal” y cuál es la de referencia.
  • Usar alias cortos para mejorar la legibilidad.
  • Evitar RIGHT JOIN en motores que no lo soportan (usar LEFT JOIN intercambiando el orden de las tablas).

RIGHT JOIN en distintos motores de base de datos

  • MySQL / MariaDB: soportan RIGHT JOIN.
  • PostgreSQL: soporta RIGHT JOIN.
  • SQL Server: soporta RIGHT JOIN.
  • Oracle: soporta RIGHT JOIN.
  • SQLite: no soporta RIGHT JOIN directamente (se emula con LEFT JOIN invirtiendo tablas).

Preguntas frecuentes (FAQ)

1. ¿Cuándo usar RIGHT JOIN en lugar de LEFT JOIN?
Cuando queremos priorizar la tabla derecha como la principal de la consulta.

2. ¿Puedo convertir un RIGHT JOIN en LEFT JOIN?
Sí, intercambiando el orden de las tablas.

3. ¿Qué pasa si no hay coincidencias en la tabla izquierda?
Las columnas de la tabla izquierda se rellenan con NULL.

4. ¿RIGHT JOIN es parte del estándar SQL?
Sí, aunque algunos motores como SQLite no lo implementan.

5. ¿Es mejor usar RIGHT JOIN o FULL OUTER JOIN?
Depende:

  • RIGHT JOIN → asegura todas las filas de la derecha.
  • FULL OUTER JOIN → asegura todas las filas de ambas tablas.

Conclusión

El RIGHT JOIN en SQL es útil para:

  • Asegurar que se devuelvan todas las filas de la tabla derecha.
  • Ver registros que no tienen coincidencia en la tabla izquierda.
  • Generar reportes completos en escenarios donde la tabla derecha es la “principal”.

Aunque es menos usado que el LEFT JOIN, conviene dominarlo para comprender consultas complejas y migrar código entre distintos motores de bases de datos.

Observa casos en los que conviene RIGHT JOIN en JOINS y vuelve al Glosario SQL completo.

Scroll al inicio