JOINS Flashcards
Define INNER JOIN
Tipo de join que devuelve filas cuando hay una concidencia en ambas tablas.
Define LEFT JOIN
Tipo de jon que devuelve todas las filas de la tabla izquierda y las filas de la tabla derecha donde existe una coincidencia.Si no hay concidencia se deja con NULL
Define CROSS JOIN
Tipo de join que retorna el producto cartesiano d elas filas de la tabla. Cada tabla de A sera combinada con todas las filas de la tabla B.
Define RIGHT JOIN
Tipo de join que devuelve todas las filas de la tabla derecha y las filas de la tabla izquierda donde existe una coincidencia. Si no hay concidencia se deja con NULL
Define Self Join
Tipo de join en el cual una tabla se une consigo misma. Se usa para comprar filas dentro de la misma tabla
Define Full Join
Tipo de join que retorna los resultados combinados de left y right join. Retorna todas las filas cuando haay una coincidencia en alguna de las tablas si no hay concidencias entonces NULL
¿Qué es un full outer join y para qué tipo de análisis lo utilizarías?
Un full outer join retorna todas las filas de ambas tablas cuando hay una coincidencia en alguna de ellas. Si una tabla no tiene coincidencias, sus correspondientes campos en el resultado se llenan con NULL. Este tipo de join es útil para análisis de completitud de datos, como comparar inventarios o listas de clientes de diferentes fuentes.
¿Puedes explicar un caso en el que usarías un cross join?
Un cross join se usaría cuando necesito el producto cartesiano de dos tablas, es decir, cada fila de una tabla se combina con cada fila de la otra tabla. Un ejemplo práctico podría ser combinar una lista de colores con una lista de productos para ver todas las posibles combinaciones de productos y colores.
¿Cómo manejarías una consulta SQL que involucra múltiples joins y que resulta ser muy lenta?
Optimizaría la consulta asegurándome de usar índices en las columnas usadas para los joins, limitando las filas con cláusulas WHERE antes de aplicar el join, y utilizando joins explícitos en vez de implícitos. También consideraría dividir la consulta en partes más pequeñas o usar vistas temporales si es necesario.
¿Qué es un natural join y cuál es tu opinión sobre usarlo?
Un natural join combina tablas basado en todas las columnas que tienen el mismo nombre y tipos compatibles en ambas tablas. Personalmente, prefiero evitarlos porque la coincidencia automática de columnas puede llevar a errores difíciles de detectar si las estructuras de las tablas cambian con el tiempo. RECORDAR QUE ES UN INNER JOIN DISFRAZADO
Describe un escenario donde un self join sería útil.
Un self join es útil para comparar filas dentro de la misma tabla. Por ejemplo, en una tabla de empleados, podría usar un self join para encontrar todos los pares de empleados que trabajan en el mismo departamento.
¿Cómo abordarías un problema donde los joins están devolviendo más filas de las esperadas?
Revisaría las condiciones del join para asegurarme de que son correctas y específicas. Verificaría si hay duplicados en las columnas clave que podrían estar causando un producto cartesiano inadvertido. También consideraría la posibilidad de que se necesiten condiciones adicionales en la cláusula WHERE.