Inner Join vs Outer Join
Inner join y Outer join son dos de los métodos de unión de SQL utilizados en el procesamiento de consultas para bases de datos. Pertenecen a la familia de cláusulas de unión (las otras dos son uniones izquierda y derecha). Sin embargo, hay un Self Join que se puede usar para situaciones especializadas. El propósito de Join es combinar campos usando los valores comunes a las dos tablas. Estas combinaciones combinan registros de varias tablas en una base de datos. Crea conjuntos resultantes, que se pueden guardar como otra tabla.
¿Qué es la unión interna?
La operación SQL Join más utilizada es Inner Join. Se puede considerar como el tipo predeterminado de combinación que se utiliza en las aplicaciones. La unión interna usa el predicado de unión para combinar dos tablas. Suponiendo que las dos tablas son A y B, el predicado de unión comparará las filas de A y B para encontrar todos los pares que satisfacen el predicado. Los valores de columna de todas las filas satisfechas de las tablas A y B se combinan para crear el resultado. Se puede considerar que primero toma la unión cruzada (producto cartesiano) de todos los registros y luego devuelve solo los registros que satisfacen el predicado de unión. Sin embargo, en realidad, el producto cartesiano no se calcula porque es muy ineficiente. En su lugar, se utiliza la combinación hash o la combinación de clasificación y fusión.
¿Qué es la unión externa?
A diferencia de la combinación interna, la combinación externa conserva todos los registros incluso si no puede encontrar un registro coincidente. Eso significa que la combinación externa necesita un registro para encontrar un registro coincidente para que aparezca en el resultado. En su lugar, devolverá todos los registros, pero los registros no coincidentes tendrán valores nulos. Las uniones externas se dividen en tres subcategorías. Son combinación externa izquierda, combinación externa derecha y combinación externa completa. Esta diferenciación se basa en qué fila de la tabla (tabla de la izquierda, tabla de la derecha o ambas tablas) se retiene cuando se encuentran registros no coincidentes. Las combinaciones externas izquierdas (también conocidas simplemente como combinación izquierda) conservan todos los registros de la tabla izquierda. Eso significa que, incluso si el número de registros coincidentes es cero, seguirá teniendo registros en la tabla de resultados, pero tendrá valores nulos para todas las columnas de B. En otras palabras, todos los valores de la tabla de la izquierda se devolverán con los valores coincidentes de la derecha. tabla (o valores nulos cuando no coinciden). Si los valores de varias filas de la tabla de la izquierda coinciden con una sola fila de la tabla de la derecha, la fila de la tabla de la derecha se repetirá según sea necesario. La combinación externa derecha es bastante similar a la combinación externa izquierda, pero se respeta el tratamiento de las tablas. Eso significa que el resultado tendrá todas las filas de la tabla derecha al menos una vez con valores coincidentes de la tabla izquierda (y valores nulos para valores derechos no coincidentes). La combinación externa completa es más completa que las combinaciones externas izquierda y derecha. Da como resultado la combinación del efecto de aplicar juntas las partes exteriores izquierda y derecha.
¿Cuál es la diferencia entre Inner Join y Outer Join?
Inner Join no conserva las filas no coincidentes en el resultado, pero la combinación externa conservará todos los registros de al menos una tabla (según la combinación externa que se haya utilizado). Por lo tanto, el comportamiento de no tener información presente en filas no coincidentes en la tabla de resultados no es deseable, siempre debe usar una de las combinaciones externas (en lugar de la combinación interna). Es posible que la unión interna no produzca ningún resultado si no se encuentran coincidencias. Pero la combinación externa siempre producirá una tabla resultante, incluso sin filas coincidentes. La unión interna siempre devolverá tablas con valores (si se devuelven). Pero las uniones externas pueden generar tablas con valores nulos.