Números donde querías nombres
La bibliotecaria mira la tabla de préstamos. Ve "member_id 3" y "member_id 1".
Esos números no le dicen nada. Ella quiere ver quién se llevó cada libro.
Hasta ahora seguías el enlace a mano. Hoy lo hará SQL por ti.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| JOIN | Unir dos tablas en un solo resultado. | FROM loans JOIN members |
| INNER JOIN | Une solo las filas que tienen pareja en la otra tabla. | loans INNER JOIN members |
| ON | Dice qué columnas se comparan para formar las parejas. | ON loans.member_id = members.id |
| Alias | Un nombre corto que le pones a una tabla en esa consulta. | members AS m |
| Pareja | Dos filas, una de cada tabla, que se enlazan por la clave ajena. | El préstamo 1 y Carla |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Dos tablas, una pregunta
La tabla members guarda los socios. La tabla loans guarda los préstamos, con la clave ajena member_id.
Un INNER JOIN junta las dos. Por cada préstamo busca al socio con ese id y pega las dos filas en una.
Pruébalo: mira las dos tablas
-- Primero los socios y después los préstamos.
SELECT * FROM members;
SELECT * FROM loans;
-- Fíjate en loans.member_id: es un id de members.
Ejemplo resuelto: formar las parejas
| Préstamo | member_id | Socio con ese id | Fila unida |
|---|---|---|---|
| 1: El principito | 1 | Carla Ríos | Carla Ríos, El principito |
| 2: Marina | 3 | Elena Sanz | Elena Sanz, Marina |
| 3: Marina | 1 | Carla Ríos | Carla Ríos, Marina |
| 4: Don Quijote | 2 | Dani Toro | Dani Toro, Don Quijote |
| 5: El principito | 3 | Elena Sanz | Elena Sanz, El principito |
| 6: Platero y yo | 1 | Carla Ríos | Carla Ríos, Platero y yo |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Cómo se escribe
Después de FROM pones la primera tabla. Luego INNER JOIN y la segunda tabla. Al final, ON dice qué columnas deben ser iguales.
Como las dos tablas tienen una columna id, escribes el nombre de la tabla delante: members.name, loans.book.
Pruébalo: quién se llevó cada libro
-- Una fila por préstamo, con el nombre del socio al lado.
SELECT members.name, loans.book, loans.days
FROM loans
INNER JOIN members ON loans.member_id = members.id
ORDER BY loans.id;
-- Compara con la tabla de parejas de arriba. Salen las mismas seis filas.
Repaso rápido: las parejas
Inténtalo
Repaso rápido: las parejas
3 preguntasTus respuestas se corrigen aquí y no se guardan. Una cuenta guarda tus resultados.
Alias: nombres cortos
Escribir members y loans muchas veces cansa. Con AS le das a cada tabla un nombre corto, un alias.
Aquí, m es members y l es loans. Es lo mismo, pero más corto.