Un inner join devuelve solo las filas con coincidencia en ambos lados. Un left join devuelve todas las filas de la tabla izquierda más las columnas coincidentes de la derecha, con nulos donde no hay coincidencia. El daño silencioso viene de usar un inner join para un conteo: los clientes con cero pedidos desaparecen del todo, así que tu tasa de conversión se ve mejor que la realidad y no salta ningún error.
Por qué lo preguntan los entrevistadores
Los joins son la herramienta más usada en el día de un analista, y elegir mal produce un número plausible pero incorrecto en vez de un error. Los entrevistadores quieren oír que piensas qué lado hay que preservar antes de escribir la consulta, y que compruebas los conteos de filas antes y después de un join en vez de fiarte del resultado.
Cómo estructurar tu respuesta
- Define ambos joins según qué filas sobreviven.
- Da un caso concreto donde un inner join esconde los ceros.
- Menciona comprobar los conteos de filas antes y después de unir.
- Señala que filtrar la tabla derecha en el WHERE convierte un left join en un inner join.
Ejemplo de respuesta
El inner se queda solo con las filas que coinciden, el left se queda con todo lo de la izquierda y rellena con nulos donde la derecha no tiene nada. Lo que me preocupa tanto es que el equivocado no lanza un error, simplemente te da una respuesta incorrecta con mucha seguridad. La versión clásica es contar clientes uniendo con pedidos. Con un inner join, quien nunca compró desaparece, así que si luego calculas la media de pedidos por cliente has excluido en silencio justo el denominador que te importaba. Hay una trampa relacionada que busco en las revisiones: si escribes un left join y luego filtras en el WHERE por una columna de la tabla derecha, los nulos se filtran y lo has convertido otra vez en un inner join sin darte cuenta. El filtro tiene que ir en la cláusula ON. Mi costumbre es contar filas en la tabla base, ejecutar el join y volver a contar. Si creció, tengo un fan out. Si encogió, he perdido filas que probablemente quería.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Por qué filtrar la tabla derecha en el WHERE rompe un left join?
- ¿Cómo encontrarías filas que existen en una tabla pero no en la otra?
- ¿Para qué sirve en la práctica un full outer join?
Más preguntas para Analista de datos
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas