SQL medio: JOIN, GROUP BY y HAVING

Relaciona tablas y construye métricas con joins y agregaciones para responder preguntas de negocio reales.

Con joins y agregaciones dejas de consultar tablas sueltas y empiezas a responder preguntas de producto y negocio.

El error clásico aquí es duplicar filas sin darte cuenta por joins mal definidos; vamos a evitarlo desde el principio.

Si notas huecos en modelado, repasa <a href="/curso/bbdd/leccion/bbdd-modelo-relacional-entidad-relacion-basico">entidad-relación</a>.

  • El tipo de join cambia el significado del resultado.
  • INNER JOIN devuelve coincidencias en ambas tablas. LEFT JOIN conserva la tabla izquierda aunque no haya match.
  • Antes de escribir join, define si necesitas solo datos relacionados o también registros sin relación.
  • Con joins y agregaciones dejas de consultar tablas sueltas y empiezas a responder preguntas de producto y negocio.
  • El error clásico aquí es duplicar filas sin darte cuenta por joins mal definidos; vamos a evitarlo desde el principio.

INNER y LEFT JOIN con intención

El tipo de join cambia el significado del resultado.

INNER JOIN devuelve coincidencias en ambas tablas. LEFT JOIN conserva la tabla izquierda aunque no haya match.

Antes de escribir join, define si necesitas solo datos relacionados o también registros sin relación.

Bases de datos
06

SQL medio: JOIN, GROUP BY y HAVING

Relaciona tablas y construye métricas con joins y agregaciones para responder preguntas de negocio reales.

Código del tema: Modelo relacional + consultas SQL

📘 Teoría

INNER y LEFT JOIN con intención

El tipo de join cambia el significado del resultado.

1

INNER JOIN devuelve coincidencias en ambas tablas. LEFT JOIN conserva la tabla izquierda aunque no haya match.

2

Antes de escribir join, define si necesitas solo datos relacionados o también registros sin relación.

🧪 Aprende probando

Ejemplo Ejemplo guiado: INNER JOIN Lista pedidos junto al nombre del cliente.
Ejemplo Ejemplo guiado: total por cliente Agrupa y suma importes por cliente.
Ejemplo Demo: filtrar agregados con HAVING Mostrar clientes con gasto alto.

🏁 Retos

Reto Reto: usa LEFT JOIN Incluye clientes sin pedidos.
Reto Reto: filtra clientes top Añade HAVING para gasto > 1000.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre Bases de datos.

Test de Bases de datos

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros. culTest

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com