INNER JOIN: combina dos tablas
Hasta ahora consultabas una sola tabla. students guarda la ciudad como texto, pero el detalle de cada ciudad vive en otra tabla: cities, donde name es la clave y cada fila añade su region.
Un JOIN relaciona filas de dos tablas mediante una columna compartida. Esa condición se escribe en ON: aquí students.city coincide con cities.name.
INNER JOIN conserva solo las filas que encuentran pareja en ambas tablas. Los alias (students AS s, cities AS c) acortan las referencias y evitan ambigüedad cuando las columnas se llaman igual.
Si una fila no tiene coincidencia, no aparece en el resultado.

