Concepto
La tabla inscripciones dice que el estudiante 4 tomó el curso 102 y sacó un 4.9, pero no dice cómo se llama el estudiante ni el curso. Esos datos están en otras tablas, y se conectan por sus identificadores. JOIN junta las tablas usando esas conexiones.
SELECT a.columna, b.columna
FROM tabla_a AS a
JOIN tabla_b AS b ON b.id = a.tabla_b_id;Por qué los datos están separados. Si cada inscripción repitiera el nombre y el correo del estudiante, un cambio de correo habría que hacerlo en muchas filas. Separados, cada dato vive en un solo lugar, y las tablas se apuntan por id: inscripciones.estudiante_id apunta a estudiantes.id, y inscripciones.curso_id a cursos.id.
JOIN con ON. ON dice qué columna de una tabla calza con cuál de la otra. Los alias de tabla (AS i, AS c) acortan la escritura, y con alias.columna queda claro de qué tabla sale cada dato.
SELECT c.titulo, i.estado
FROM inscripciones AS i
JOIN cursos AS c ON c.id = i.curso_id;Cada fila busca su pareja. Para cada inscripción, la base busca el curso cuyo id es igual a su curso_id y pega sus columnas. Si escribes mal el ON, por ejemplo c.id = i.estudiante_id, la consulta corre igual, pero junta filas que no tienen nada que ver.
Encadenar JOIN. Para traer datos de una tercera tabla, agregas otro JOIN con su propio ON. inscripciones queda al centro, porque apunta a las otras dos.
JOIN deja fuera lo que no calza. Una inscripción sin curso, o un estudiante sin inscripciones, no aparece en el resultado. En la próxima lección verás cómo conservarlos.
> tarea SQL
Arma el listado de notas que la escuela envía a fin de semestre: por cada inscripción, el nombre del estudiante, el título del curso y la nota, en ese orden.
Primero intenta: las pistas aparecen después de 2 intentos con un resultado incorrecto (los errores de código no cuentan). Llevas 0.