Joins en SQL con verificación de NULL

Tiempo de lectura: 2 minutos

En SQL, los joins son utilizados para combinar filas de dos o más tablas basadas en una condición relacionada entre ellas. A continuación, te mostraré cómo utilizar los joins más importantes: INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN, con verificaciones de NULL para manejar las filas sin coincidencias.

1. INNER JOIN

El INNER JOIN devuelve solo las filas que tienen una coincidencia en ambas tablas. No es necesario realizar una verificación de NULL, ya que solo devuelve filas que coinciden en ambas tablas.

Sintaxis:

SELECT columnas
FROM tabla1
INNER JOIN tabla2 ON tabla1.columna = tabla2.columna;

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;

Verificación de NULL:

SELECT clientes.nombre, pedidos.producto
FROM clientes
LEFT JOIN pedidos ON clientes.id = pedidos.cliente_id
WHERE pedidos.cliente_id IS NULL;

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;

Verificación de NULL:

SELECT clientes.nombre, pedidos.producto
FROM clientes
RIGHT JOIN pedidos ON clientes.id = pedidos.cliente_id
WHERE clientes.id IS NULL;

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;

Verificación de NULL:

SELECT clientes.nombre, pedidos.producto
FROM clientes
FULL JOIN pedidos ON clientes.id = pedidos.cliente_id
WHERE clientes.id IS NULL OR pedidos.cliente_id IS NULL;

Deja un comentario