Unión interna vs. Unión externa


En SQL, un unirse se utiliza para comparar y combinar (literalmente unirse) y devolver filas específicas de datos de dos o más tablas en una base de datos. Un unir internamente encuentra y devuelve datos coincidentes de las tablas, mientras que un unión externa encuentra y devuelve datos coincidentes y algunos datos diferentes de tablas.

Unir internamente

Una combinación interna se enfoca en los puntos en común entre dos tablas. Cuando se usa una unión interna, debe haber al menos algunos datos coincidentes entre dos (o más) tablas que se están comparando. Una combinación interna busca tablas para datos coincidentes o superpuestos. Al encontrarlo, la unión interna combina y devuelve la información en una nueva tabla.

Ejemplo de unión interna

Consideremos un escenario común de dos tablas: precios de productos y cantidades. La información común en las dos tablas es el nombre del producto, por lo que es la columna lógica para unir las tablas en. Hay algunos productos que son comunes en las dos tablas; otros son exclusivos de una de las tablas y no tienen una coincidencia en la otra tabla.

Una unión interna en Productos devuelve información sobre solo aquellos productos que son comunes en ambas tablas.

Unión externa

Una combinación externa devuelve un conjunto de registros (o filas) que incluyen lo que devolvería una combinación interna pero también incluye otras filas para las cuales no se encuentra una coincidencia correspondiente en la otra tabla.

Hay tres tipos de uniones externas:

  • Unión externa izquierda (o Unión izquierda)
  • Unión externa derecha (o Unión derecha)
  • Full Outer Join (o Full Join)

Cada una de estas combinaciones externas se refiere a la parte de los datos que se comparan, combinan y devuelven. Algunas veces se producirán nulos en este proceso, ya que algunos datos se comparten y otros no..

Izquierda combinación externa

Una combinación externa izquierda devolverá todos los datos en la Tabla 1 y todos los datos compartidos (por lo tanto, la parte interna del ejemplo del diagrama de Venn), pero solo los datos correspondientes de la Tabla 2, que es la combinación correcta.

Ejemplo de unión izquierda

En nuestra base de datos de ejemplo, hay dos productos, naranjas y tomates, en la 'izquierda' (Precios tabla) que no tienen una entrada correspondiente en el 'derecho' (tabla de Cantidades). En una combinación a la izquierda, estas filas se incluyen en el conjunto de resultados con un valor NULL en la columna Cantidad. Las otras filas en el resultado son las mismas que la combinación interna.

Unión externa derecha

Una unión externa derecha devuelve los datos de la Tabla 2 y todos los datos compartidos, pero solo los datos correspondientes de la Tabla 1, que es la unión izquierda.

Ejemplo de unión correcta

Al igual que en el ejemplo de la combinación de la izquierda, la salida de una combinación externa de la derecha incluye todas las filas de la combinación interna y dos filas, el brócoli y la calabaza, desde la "derecha" (Cantidades tabla) que no tienen entradas coincidentes en la izquierda.

Unión externa completa

Una unión externa completa, o unión completa, que es no Compatible con el popular sistema de gestión de bases de datos MySQL, combina y devuelve todos datos de dos o más tablas, independientemente de si hay información compartida. Piense en una unión completa como simplemente duplicando toda la información especificada, pero en una tabla, en lugar de múltiples tablas. Donde faltan datos coincidentes, se producirán nulos.

Estos son solo los conceptos básicos, pero muchas cosas se pueden hacer con uniones. Incluso hay combinaciones que pueden excluir otras combinaciones.!

Video que explica las combinaciones internas vs externas

Este video explica la diferencia entre varios tipos de combinaciones. Se le indica que comience en el punto donde comienza la discusión sobre las uniones..

Referencias

  • Diferencia entre unión interna y externa. - Desbordamiento de pila
  • SQL Inner Join - Quackit
  • Unión externa SQL - Quackit
  • Uso de uniones internas - Microsoft SQL Server
  • Usando Uniones Externas - Microsoft SQL Server
  • Representación visual de las uniones SQL - Proyecto de Código
  • Wikipedia: Join (SQL)