En SQL, los joins son utilizados para combinar filas de dos o más tablas basadas en una condición relacionada entre ellas. Hay varios tipos de joins, pero los más importantes son: INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN.
A continuación, te mostraré cómo utilizar cada uno con ejemplos.
1. INNER JOIN
El INNER JOIN devuelve solo las filas que tienen una coincidencia en ambas tablas.
Sintaxis:
SELECT columnas FROM tabla1 INNER JOIN tabla2 ON tabla1.columna = tabla2.columna;
Ejemplo:
Supongamos que tenemos dos tablas: clientes
y pedidos
. Queremos obtener los nombres de los clientes y los pedidos que han realizado.
SELECT clientes.nombre, pedidos.producto FROM clientes INNER JOIN pedidos ON clientes.id = pedidos.cliente_id;
2. LEFT JOIN
El LEFT JOIN devuelve todas las filas de la tabla izquierda y las filas coincidentes de la tabla derecha. Si no hay coincidencias, devuelve NULL en las columnas de la tabla derecha.
Sintaxis:
SELECT columnas FROM tabla1 LEFT JOIN tabla2 ON tabla1.columna = tabla2.columna;
Ejemplo:
Queremos obtener todos los clientes, incluso aquellos que no han realizado pedidos.
SELECT clientes.nombre, pedidos.producto FROM clientes LEFT JOIN pedidos ON clientes.id = pedidos.cliente_id;
3. RIGHT JOIN
El RIGHT JOIN devuelve todas las filas de la tabla derecha y las filas coincidentes de la tabla izquierda. Si no hay coincidencias, devuelve NULL en las columnas de la tabla izquierda.
Sintaxis:
SELECT columnas FROM tabla1 RIGHT JOIN tabla2 ON tabla1.columna = tabla2.columna;
Ejemplo:
Queremos obtener todos los pedidos, incluso aquellos que no tienen un cliente asociado.
SELECT clientes.nombre, pedidos.producto FROM clientes RIGHT JOIN pedidos ON clientes.id = pedidos.cliente_id;
4. FULL JOIN
El FULL JOIN devuelve todas las filas cuando hay una coincidencia en una de las tablas. Si no hay coincidencias, devuelve NULL en las columnas de la tabla que no tiene coincidencias.
Sintaxis:
SELECT columnas FROM tabla1 FULL JOIN tabla2 ON tabla1.columna = tabla2.columna;
Ejemplo:
Queremos obtener todos los clientes y todos los pedidos, incluyendo aquellos que no tienen una correspondencia en la otra tabla.
SELECT clientes.nombre, pedidos.producto FROM clientes FULL JOIN pedidos ON clientes.id = pedidos.cliente_id;
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.