Diferencia entre la unión interna y la unión externa

Inner Join vs Outer Join

La unión interna y la unión externa son dos de los métodos de unión SQL utilizados en el procesamiento de consultas para bases de datos. Pertenecen a la familia de cláusulas de unión (otras dos son las combinaciones izquierda y derecha). Sin embargo, existe una Auto-unión que puede usarse para situaciones especializadas. El propósito de Unir es combinar campos usando los valores comunes a las dos tablas. Estas uniones 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 de unión SQL más utilizada es la unión interna. Se puede considerar como el tipo predeterminado de unión utilizado 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, entonces 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 como primero tomar la unión cruzada (producto cartesiano) de todos los registros y luego devolver 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 combinación ordenada y combinada..

¿Qué es la unión externa??

A diferencia de la combinación interna, la combinación externa mantiene 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 la unión externa izquierda, la unión externa derecha y la unión externa completa. Esta diferenciación se basa en la fila de la tabla (tabla izquierda, tabla derecha o ambas tablas) que se conserva cuando se encuentran registros no coincidentes. Las combinaciones externas izquierdas (también conocidas como combinaciones simples a la izquierda) retienen 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 izquierda se devuelven con los valores coincidentes de la derecha tabla (o valores nulos cuando no coinciden). Si los valores de varias filas de la tabla izquierda coinciden con una sola fila de la tabla derecha, la fila de la tabla derecha se repetirá según sea necesario. La combinación externa derecha es bastante similar a la combinación externa izquierda, pero el tratamiento de las tablas es venerado. 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 correctos no coincidentes). La unión externa completa es más completa que las uniones externas izquierda y derecha. Da como resultado la combinación del efecto de aplicar los extremos exterior izquierdo y derecho juntos..

¿Cuál es la diferencia entre la unión interna y la unión externa??

La combinación interna no mantiene 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). La unión interna puede no producir un resultado si no se encuentran coincidencias. Pero la unió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 combinaciones externas pueden generar tablas con valores nulos..