Contenido del curso

LEFT JOIN y RIGHT JOIN en SQL

Resumen

Cuando empiezas a trabajar con JOIN y FULL JOIN en SQL, fusionar tablas se vuelve un dolor de cabeza. Aquí aprenderás a usar LEFT JOIN y RIGHT JOIN para decidir qué tabla tiene prioridad y mostrar los datos en el orden que necesitas, usando como ejemplo las tablas customer y rental.

Por qué necesitas LEFT JOIN y RIGHT JOIN al fusionar tablas

Cuando ejecutas un JOIN simple entre dos tablas, suele pasar que una contiene más registros que la otra y eso genera resultados desbalanceados. Ahí entran los operadores direccionales.

En el ejemplo trabajamos con dos tablas que comparten el campo customer_id: customer, que guarda datos personales como first_name y last_name, y rental, que guarda las rentas con su rental_id y rental_date. La pregunta es cuál tabla manda en el resultado final.

¿Qué hace un LEFT JOIN en SQL? Le da prioridad a la tabla que escribes primero (la de la izquierda) y trae todos sus registros, aunque no tengan coincidencia en la tabla de la derecha.

Cómo aplicar un LEFT JOIN dándole prioridad a customer

La idea es escribir la consulta partiendo de customer como tabla principal y agregar rental después con el operador izquierdo.

La consulta queda así:

sql SELECT customer.customer_id, first_name, last_name, rental_id FROM customer LEFT JOIN rental ON customer.customer_id = rental.customer_id;

Al ejecutar con F5, el resultado muestra primero customer_id, luego first_name, last_name y al final rental_id. Los campos de customer aparecen al frente porque esa tabla tiene la prioridad. Si un cliente no tiene rentas registradas, igual aparece en el listado, solo que con rental_id vacío.

Este comportamiento es útil cuando tu pregunta de negocio es del tipo: quiero ver a todos mis clientes, hayan rentado o no.

Qué pasa si comentas y descomentas las consultas

Un truco práctico al trabajar en el editor: comentar bloques con -- o /* */ te permite alternar entre la consulta de customer sola y la consulta con JOIN para comparar campos disponibles antes de fusionarlos. Así detectas qué columnas vale la pena traer.

Cuándo conviene usar RIGHT JOIN para priorizar otra tabla

Si lo que necesitas es exactamente lo opuesto, que la tabla rental mande, cambias el operador a RIGHT JOIN.

sql SELECT customer_id, first_name, rental_date FROM customer RIGHT JOIN rental ON customer.customer_id = rental.customer_id;

Ahora el resultado prioriza los registros de rental. Aparecen todas las rentas y, si alguna no tuviera cliente asociado, igual se mostraría. Puedes elegir qué campos traes de cada lado: en este caso solo extraes first_name de customer pero conservas rental_date de rental.

¿Cuál es la diferencia entre LEFT JOIN y RIGHT JOIN? El LEFT JOIN conserva todos los registros de la tabla escrita antes del operador. El RIGHT JOIN conserva todos los de la tabla escrita después. La información puede ser la misma, pero el orden de prioridad cambia el resultado.

Cómo cambia el orden de las columnas en el resultado

Un detalle visual importante: el orden en el SELECT define cómo se despliegan las columnas en pantalla. Puedes empezar con customer_id, seguir con first_name y cerrar con rental_date para que la lectura tenga sentido para tu reporte.

La misma data, dos consultas distintas, dos historias diferentes según qué tabla manda.

Por qué practicar LEFT JOIN y RIGHT JOIN te abre puertas con APIs

Estos operadores se vuelven imprescindibles cuando trabajas con APIs reales, donde recibes información fragmentada en múltiples tablas y necesitas decidir qué entidad es la principal para tu respuesta.

Algunos escenarios donde marcan la diferencia:

  • Reportes de clientes con o sin actividad reciente.
  • Listados de transacciones donde el cliente puede estar incompleto.
  • Dashboards que mezclan tablas maestras con tablas de eventos.

¿Puedo obtener los mismos datos con LEFT JOIN y RIGHT JOIN? Sí. Si inviertes el orden de las tablas, un LEFT JOIN se comporta igual que un RIGHT JOIN. Lo que cambia es la legibilidad de tu consulta.

La recomendación es que practiques fusionando customer y rental con ambos operadores, cambiando los campos que seleccionas y observando cómo se reordena el resultado. Cuéntame en los comentarios qué combinaciones probaste y cuál te resultó más útil.