Gráffica Academy
Creado para la ComunidadAprende a programar
Escribir al equipo

Contacta con el equipo de Gráffica Estudio Academy.

IG @ X in
SQL · Módulo 9

Joins II: RIGHT, FULL, SELF y UNION

LEFT JOIN mantiene todo lo de la izquierda. Hoy completas la familia: lo que mantiene todo lo de la derecha, lo que mantiene todo de ambos lados a la vez, el JOIN de una tabla contra sí misma, y una forma completamente distinta de combinar resultados que no depende de ninguna clave en común: UNION.

RIGHT JOIN: el espejo del LEFT JOIN

RIGHT JOIN hace exactamente lo mismo que LEFT JOIN, pero mantiene todas las filas de la tabla de la derecha en vez de la izquierda. En la práctica, casi nadie usa RIGHT JOIN: es más habitual reescribir la consulta cambiando el orden de las tablas y usar LEFT JOIN, que es más fácil de leer de un vistazo. Aun así, tienes que reconocerlo si te lo encuentras.

right-join.sql
1
Pulsa "Ejecutar" para ver el resultado.

FULL JOIN: todo, coincida o no, de ambos lados

FULL JOIN (o FULL OUTER JOIN) combina LEFT y RIGHT a la vez: mantiene todas las filas de ambas tablas, rellenando con NULL donde no haya coincidencia en el otro lado.

full-join.sql
1
Pulsa "Ejecutar" para ver el resultado.
💡 Consejo

No todos los motores soportan FULL JOIN de forma nativa (MySQL, por ejemplo, históricamente no lo hacía). Este playground sí lo soporta porque corre sobre SQLite moderno. Si algún día trabajas con un motor que no lo soporte, se simula combinando un LEFT JOIN y un RIGHT JOIN con UNION — justo lo que aprendes a continuación.


SELF JOIN: una tabla contra sí misma

A veces necesitas comparar filas de una misma tabla entre sí — por ejemplo, "clientes de la misma ciudad que Ana". Para eso usas un JOIN normal, pero con la misma tabla dos veces, cada una con su propio alias.

self-join.sql
1
Pulsa "Ejecutar" para ver el resultado.

El a.id <> b.id es imprescindible: sin él, cada cliente aparecería emparejado consigo mismo (misma ciudad que él mismo, técnicamente cierto pero inútil).


UNION y UNION ALL: apilar resultados

UNION no combina tablas en horizontal como un JOIN — combina resultados en vertical, apilando las filas de dos consultas distintas, siempre que tengan el mismo número de columnas y tipos compatibles.

UNION

Apila los resultados y elimina filas duplicadas exactas entre ambas consultas.

UNION ALL

Apila los resultados SIN eliminar duplicados. Es más rápido, porque se salta la comprobación de duplicados — úsalo siempre que sepas que no puede haberlos, o que no te importan.

union.sql
1
Pulsa "Ejecutar" para ver el resultado.

Ponlo a prueba

Comprueba lo que has aprendido

3 preguntas · sin nota, solo para afianzar lo de hoy

1. ¿En qué se diferencia FULL JOIN de LEFT JOIN?

2. ¿Para qué sirve comparar a.id <> b.id en un SELF JOIN?

3. ¿Qué diferencia hay entre UNION y UNION ALL?

Síguenos IG @ X in