La forma más sencilla de entender una operación JOIN de SQL es verla como un emparejamiento de filas. Para cada fila de la tabla de la izquierda, la base de datos busca en la tabla de la derecha aquellas filas que cumplen la condición ON; cada coincidencia genera una fila de resultado que contiene columnas de ambas tablas de origen.
Para ilustrarlo con un ejemplo concreto, utilicemos dos tablas pequeñas: students(id, name) y enrollments(student_id, course), y relacionémoslas mediante una condición de igualdad: students.id = enrollments.student_id. Observe cómo se forman los pares de filas basándose en esa única condición.
Una vez que se concibe una operación de unión (join) como un emparejamiento, el recuento de filas deja de ser un misterio. Cada fila de la tabla de la izquierda aporta tantas filas al resultado como coincidencias tenga con filas de la tabla de la derecha (ya sean 0, 1 o varias), y el tamaño total de la unión es la suma de dichas aportaciones.
Antes de examinar el código SQL, plantéate una pregunta concreta sobre esas mismas tablas. Si un estudiante tiene 2 filas de inscripción coincidentes, otro tiene 1 y un tercero tiene 0, ¿cuál debería ser el número total de filas resultantes de la unión? Analiza la cantidad de coincidencias por estudiante y cómo se suman entre sí.