Introducción a SQL JOIN (INNER, LEFT y RIGHT)

SQL JOIN no tiene por qué ser complicado. En este artículo aprenderás acerca de tres variantes de esta cláusula (INNER, LEFT y RIGHT) y al terminar serás capaz de implementarlos en tu app. Definitivamente te hará la vida mucho más fácil.

En este artículo aprenderás:

  1. ¿Para qué sirve la cláusula JOIN en SQL?
  2. INNER JOIN
  3. LEFT JOIN
  4. RIGHT JOIN

*Para seguir este artículo necesitas tener conocimiento sobre conceptos básicos de SQL (p.ej. SELECT, FROM, WHERE, etc...)

¿Para qué sirve la cláusula JOIN en SQL?

En las bases de datos relacionales los datos se almacenan en muchas tablas que están vinculadas entre ellas mediante llaves. Normalmente cuando buscamos información en una base de datos, no todo lo que necesitamos se encuentra en la misma tabla. Debido a esto necesitamos un mecanismo a través del cual podamos combinar información de dos o más tablas, para eso utilizamos la cláusula 'JOIN'.

Utilizaremos las siguientes tablas para ilustrar los ejemplos

Tabla de Alumnos (alumnos)
Tabla de Exámenes (examenes)

INNER JOIN

INNER JOIN (o simplemente JOIN) va a devolver las coincidencias entre las filas de las dos tablas en un campo en particular. Si el campo no coincide SQL va a ignorar esa fila. Para nuestro ejemplo, la tabla de alumnos y la de exámenes tienen un campo en común que es la cédula del alumno.

Sintaxis:
SELECT * FROM tabla_1 alias_tabla_1 JOIN tabla_2 alias_tabla_2 ON alias_tabla_1.key1=alias_tabla_2.key2
Sintaxis aplicado a nuestras tablas:
SELECT a.nombre, a.apellido, e.calificacion, e.clase FROM alumnos a JOIN examenes e ON a.cedula=e.cedula_alumno

LEFT JOIN

LEFT JOIN va a devolver las todas las filas de la tabla a la izquierda del JOIN añadiendo las columnas de la tabla a la derecha del JOIN aunque no tengan datos para todas las filas.

Sintaxis:
SELECT * FROM tabla_1 alias_tabla_1 LEFT JOIN tabla_2 alias_tabla_2 ON alias_tabla_1.key1=alias_tabla_2.key2
Sintaxis aplicado a nuestras tablas:
SELECT a.nombre, a.apellido, e.calificacion, e.clase FROM alumnos a LEFT JOIN examenes e ON a.cedula=e.cedula_alumno

RIGHT JOIN

RIGHT JOIN va a devolver las todas las filas de la tabla a la derecha del JOIN añadiendo las columnas de la tabla a la izquierda del JOIN aunque no tengan datos para todas las filas.

Sintaxis:
SELECT * FROM tabla_1 alias_tabla_1 RIGHT JOIN tabla_2 alias_tabla_2 ON alias_tabla_1.key1=alias_tabla_2.key2
Sintaxis aplicado a nuestras tablas:
SELECT a.nombre, a.apellido, e.calificacion, e.clase FROM alumnos a RIGHT JOIN examenes e ON a.cedula=e.cedula_alumno

Ayúdame a mejorar este artículo

¿Quisieras complementar este artículo o encontraste algún error?¡Excelente! Envíame un correo.

  • seb@sebastianfdz.com