Aprende a combinar datos de múltiples tablas en la base de datos de Red Social
Antes de comenzar, ve al simulador en: https://learndb.online/simulador-sql
Selecciona la base de datos "Red Social" para seguir los ejemplos.
Los JOINs (uniones) permiten combinar filas de dos o más tablas basadas en una relación columna entre ellas. En una red social, esto es fundamental para conectar usuarios con sus posts, comentarios, likes, etc.
Devuelve solo los registros que coinciden en ambas tablas.
Devuelve todos los registros de la tabla izquierda y los coincidentes de la derecha.
Devuelve todos los registros de la tabla derecha y los coincidentes de la izquierda.
Devuelve todos los registros cuando hay coincidencia en alguna tabla.
Muestra todos los posts con el nombre completo del usuario que los creó.
| nombre_usuario | contenido | fecha_publicacion |
|---|---|---|
| Carlos Mendoza | ¡Hola a todos! Acabo de terminar mi nuevo proyecto en React... | 2024-02-01 10:30:00 |
| Sofia Herrera | Nuevo tutorial de diseño de interfaces móviles... | 2024-02-02 14:15:00 |
| Diego Castillo | Captura del amanecer en Santiago desde el Cerro San Cristóbal | 2024-02-03 06:45:00 |
Muestra todos los comentarios con el nombre del comentarista y el contenido del post.
| comentarista | comentario | contenido_post |
|---|---|---|
| Sofia Herrera | ¡Se ve genial! ¿Usaste alguna librería de componentes? | ¡Hola a todos! Acabo de terminar mi nuevo proyecto en React... |
| Carlos Mendoza | Sí, usé Material-UI para los componentes base | ¡Hola a todos! Acabo de terminar mi nuevo proyecto en React... |
Muestra todos los usuarios y la cantidad de posts que han creado (incluyendo usuarios con 0 posts).
| nombre_usuario | cantidad_posts |
|---|---|
| Carlos Mendoza | 2 |
| Sofia Herrera | 1 |
| Diego Castillo | 2 |
| Valentina Rojas | 1 |
| Andrés Vega | 1 |
| María González | 1 |
Muestra todos los grupos con la cantidad de miembros (incluyendo grupos sin miembros).
| nombre_grupo | cantidad_miembros | privacidad |
|---|---|---|
| Desarrolladores Chile | 3 | publico |
| Diseño UX/UI | 2 | publico |
| Fotografía Urbana | 1 | publico |
| Música Independiente | 1 | privado |
| Cocina Saludable | 2 | publico |
Muestra todos los posts que han recibido likes, usando RIGHT JOIN.
| contenido_post | cantidad_likes |
|---|---|
| ¡Hola a todos! Acabo de terminar mi nuevo proyecto en React... | 3 |
| Nuevo tutorial de diseño de interfaces móviles... | 2 |
| Captura del amanecer en Santiago desde el Cerro San Cristóbal | 2 |
| Rutina de ejercicios para principiantes... | 2 |
Muestra todos los usuarios y su actividad de envío/recepción de mensajes.
| nombre_usuario | mensajes_enviados | mensajes_recibidos | actividad_total |
|---|---|---|---|
| Carlos Mendoza | 1 | 1 | 2 |
| Sofia Herrera | 1 | 0 | 1 |
| Diego Castillo | 1 | 0 | 1 |
| Valentina Rojas | 0 | 1 | 1 |
| Andrés Vega | 1 | 1 | 2 |
| María González | 1 | 1 | 2 |
Muestra un resumen completo de la actividad de cada usuario (posts, comentarios, likes, seguidores).
| nombre_usuario | posts | comentarios | likes_recibidos | seguidores | siguiendo |
|---|---|---|---|---|---|
| Carlos Mendoza | 2 | 1 | 3 | 2 | 2 |
| Sofia Herrera | 1 | 2 | 0 | 2 | 2 |
| Diego Castillo | 2 | 0 | 2 | 2 | 2 |
Muestra los posts ordenados por popularidad (likes + comentarios) con información del autor.
| autor | contenido | likes | comentarios | puntaje_popularidad |
|---|---|---|---|---|
| Carlos Mendoza | ¡Hola a todos! Acabo de terminar mi nuevo proyecto en React... | 3 | 3 | 6 |
| Diego Castillo | Captura del amanecer en Santiago desde el Cerro San Cristóbal | 2 | 1 | 3 |
| Sofia Herrera | Nuevo tutorial de diseño de interfaces móviles... | 2 | 1 | 3 |
Veamos cómo diferentes JOINs muestran resultados distintos para la misma relación.
Resultado: Solo usuarios que han publicado algo
Cantidad: Menos registros (solo coincidencias)
Resultado: Todos los usuarios, incluso sin posts
Cantidad: Todos los usuarios + sus posts
Resultado: Todos los posts, incluso sin usuario
Cantidad: Todos los posts + sus usuarios
Resultado: Todo: usuarios sin posts + posts sin usuarios
Cantidad: Máximo de registros posible
Has aprendido a combinar datos de múltiples tablas usando diferentes tipos de JOINs. Esta habilidad es fundamental para trabajar con bases de datos relacionales complejas.
Experimenta con diferentes combinaciones y filtros
Aprende sobre índices y rendimiento de JOINs
Prueba con las otras bases de datos del simulador