SQL · Sección 6

JOIN: combinar tablas

Productos cartesianos, uniones internas y externas, autouniones y jerarquías.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Conviene haber comprendido Conversión, NULL y decisiones.

02 / META OBSERVABLE

Al terminar deberías poder relacionar CROSS JOIN con JOIN con ON y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 35 y 55 minutos para lectura, ejemplos, tres comprobaciones y cierre.

04 / PREPARA EL LABORATORIO

Las primeras secciones se leen sin instalar nada. Para practicar SQL prepara PostgreSQL o un DBMS equivalente.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan CROSS JOIN y JOIN con ON?

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Conectarás tablas sin multiplicar filas por accidente y elegirás entre INNER, OUTER, SELF JOIN y relaciones jerárquicas.

Al terminar podrás
  • Un producto cartesiano combina todo con todo
  • USING y ON declaran cómo se relacionan las tablas
  • OUTER y SELF JOIN conservan o conectan filas distintas
01
Punto de partida

Un producto cartesiano combina todo con todo

CROSS JOIN empareja cada fila de una tabla con todas las de la otra. Puede ser intencional, pero normalmente revela que falta una condición de unión.

01

3 clientes × 4 planes producen 12 filas.

02

NATURAL JOIN usa columnas de igual nombre automáticamente.

03

La condición explícita suele ser más fácil de revisar.

Comprueba lo aprendido · 01

¿Cuántas filas produce un CROSS JOIN entre tablas de 5 y 8 filas?

Mostrar respuesta

40 filas, porque combina cada una de las 5 con cada una de las 8.

02
Unión controlada

USING y ON declaran cómo se relacionan las tablas

USING sirve cuando la columna de unión tiene el mismo nombre. ON admite nombres distintos y condiciones más expresivas.

01

INNER JOIN conserva coincidencias.

02

USING(id) evita repetir la columna en la condición.

03

ON permite empleados.dept_id = departamentos.id.

Comprueba lo aprendido · 02

¿Qué pasa con un empleado cuyo dept_id no coincide con ningún departamento?

Mostrar respuesta

No aparece en un INNER JOIN. Para conservarlo se necesita una unión externa.

03
Casos especiales

OUTER y SELF JOIN conservan o conectan filas distintas

LEFT JOIN conserva todas las filas de la izquierda. Una autounión usa dos alias de la misma tabla, por ejemplo para conectar cada empleado con su jefe.

01

LEFT JOIN conserva el lado izquierdo.

02

FULL JOIN conserva ambos lados.

03

SELF JOIN necesita alias diferentes.

Comprueba lo aprendido · 03

¿Por qué conviene LEFT JOIN en este organigrama?

Mostrar respuesta

Porque muestra también a la persona de nivel superior, cuyo jefe_id puede ser NULL.

Resumen de la sección

Tu recorrido en tres ideas

  1. Un producto cartesiano combina todo con todo
  2. USING y ON declaran cómo se relacionan las tablas
  3. OUTER y SELF JOIN conservan o conectan filas distintas
CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Suponer que un JOIN siempre devuelve una fila por entidad.

ERROR 02

Filtrar en WHERE el lado opcional de un LEFT JOIN y perder las filas sin coincidencia.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Lista todos los clientes y la cantidad de pedidos de cada uno, incluidos quienes nunca compraron.

Mostrar pauta de corrección
Una respuesta sólida:
  • Conserva CLIENTES como lado izquierdo.
  • Cuenta una columna del pedido en vez de COUNT(*).
  • Verifica clientes con cero pedidos y posibles multiplicaciones.