Aprende ya SQL JOIN

Aprende a realizar JOINs en SQL con ejemplos prácticos fáciles

consultas sql

¡Adelante! Con este tutorial quiero que aprendas de forma clara y directa la cláusula JOIN de SQL.

Como no existe una sola forma de hacer un JOIN y como se lo importante que es para realizar un buen trabajo con base de datos, en este artículo te voy a dejar todos los tipos de JOIN que existen con ejemplos claros y explicaciones sencillas.

¿Qué es un JOIN SQL?

Un JOIN de SQL es la forma que tiene este lenguaje de obtener resultados relacionados entre varias tablas de forma coherente.

Los resultados serán registros compuestos por la información de varios registros en distintas tablas.

Un uso común de la cláusula JOIN sería por ejemplo cuando tenemos dos tablas relacionadas y de las que queremos obtener una información compuesta.

La estructura de un JOIN siempre será la misma y estará compuesta por 2 tablas y sus columnas a relacionar:

 

 

SELECT *
FROM tabla1 JOIN tabla2 ON tabla1.columna1 = tabla2.columna3

Las columnas que intervienen en la unión de ambas tablas deberán de coincidir en TIPO y VALOR. De esta forma la base de datos será capaz de hacer la unión de las tablas y devolver filas compuestas por los datos de la fila de la primera tabla, más los datos de la fila de la segunda tabla.

Sé que es complicado entenderlo de forma conceptual, por esto mismo, a continuación voy a introducirte unas tablas que servirán de ejemplo para el resto del contenido de este artículo.

Tablas para los ejemplos de JOIN

Durante todo este tutorial voy a utilizar constantemente la información de 2 tablas: jugadores y equipos

Ejemplo tablas Clase y Alumno

Creo la tabla Clase con la siguiente consulta:

CREATE TABLE clase (
	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
	codigo VARCHAR(20) NOT NULL,
	observaciones VARCHAR(200) NULL
);

La información que he introducido en la tabla para los ejemplos es la siguiente:

id codigo observaciones
1 1A Los más estudiosos
2 1B Deben de mejorar
3 1C Media clase está suspendida
4 2A Ya casi han terminado DAW
5 2B Creo que van a repetir unos pocos
6 2C Sin alumnos

Esta tabla tiene solo 3 columnas:

  • Columna id que sirve para identificar cada fila de la tabla de forma única.
  • Columna codigo que es un texto de 20 letras para identificar la clase. Por ejemplo 1A.
  • Columna observaciones que es una columna con un pequeño texto a modo de observación. Valor ejemplo: alumnos escandalosos.

A continuación creo la tabla Alumno

CREATE TABLE alumno(
	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
	nombre VARCHAR(20) NOT NULL,
	id_clase INT NULL
);

Esta tabla tiene 3 columnas también y cada una es para:

  • id: sirve para identificar de forma única a cada registro.
  • nombre: nombre del alumno.
  • id_clase: columna de referencia (clave ajena) a la tabla clase  y su columna id.

Los valores de esta tabla serán los siguientes:

id nombre id_clase
1 Jesús 1
2 Roberto 2
3 Wenceslao 2
4 Ruper 10
5 Laura 4
6 Ana 3
7 Juan 1
8 Manuel 0
9 Leonardo 2

INNER JOIN en SQL

El primer tipo de JOIN que debes conocer es el INNER (interno) es el tipo de JOIN más común y el que probablemente más utilzarás.

Con un buen dominio de este JOIN podrás realizar consultas complejas de datos entre tablas relacionadas con suma facilidad.

El JOIN de tipo INNER se puede realizar de dos formas diferentes con mismos resultados:

  1. Especificando la cláusula y sus componentes en la cláusula FROM
  2. Relacionando columnas directamente en el WHERE.

INNER JOIN en FROM

SELECT alumno.nombre, alumno.apellido, clase.codigo
FROM alumno INNER JOIN clase ON alumno.id = clase.id;

JOIN en WHERE

A continuación voy a realizar un INNER JOIN en la cláusula WHERE y su resultado será totalmente equivalente al del anterior ejemplo en el FROM:

SELECT alumno.nombre, alumno.apellido, clase.codigo
FROM alumno, clase
WHERE alumno.id = clase.id;

LEFT y RIGHT JOIN

OUTER JOIN

SELF JOIN

Sobre el autor

Javier Gómez Redactor en Srcodigofuente.es

Javier Gómez

Ingeniero técnico en informática de gestión. Desarrollador web freelance y profesor de desarrollo web a partes iguales. Testarudo autodidacta, creativo, perfeccionista y alma libre.

Cargando comentarios

Utilizamos "cookies" para información estadística. Si continúas navegando aceptas su uso.