Tipos de uniones de base de datos

Las uniones son funciones básicas de las bases de datos que puede utilizar para fusionar los contenidos de dos tablas y/o bases de datos diferentes en una vista única en base a un campo común o campos que tengan en común (es decir, la condición de fusión). Para obtener más información, consulte Sobre fusiones de tablas y bases de datos.

Cuando esté utilizando datos de varias tablas y/o bases de datos en su documento, deben estar fusionadas utilizando uno de los tipos de fusión de bases de datos compatibles.

Las siguientes tablas de muestra se utilizan como referencia los ejemplos de los diferentes tipos de fusión compatibles con BarTender. La Tabla A incluye los empleados y sus ID de departamento, mientras que la Tabla B muestra los nombres de los departamentos y sus ID de departamento. El campo que tengan en común y que se utiliza como condición de fusión es DepartmentID.

Tabla A

FirstName

DepartmentID

Joe

31

Jane

33

Marca

33

Mary

34

Dan

34

Donna

NULL

Tabla B

DepartmentID

DepartmentName

31

Ventas

33

Ingeniería

34

Administración

35

Marketing

BarTender es compatible con los siguientes tipos de fusiones para una fusión de múltiples bases de datos.

En el asistente de configuración de la base de datos, los tipos de fusiones disponibles se limitan a las fusiones compatibles con el proveedor de la base de datos. Por ejemplo, cuando se crea una fusión de base de datos para una base de datos OLEDB, solo está disponible un único tipo de fusión Fusión interior. Para sortear esta limitación, puede crear una conexión de base de datos independiente para cada tabla que desee y, a continuación, crear la fusión utilizando la página Fusiones de bases de datos múltiples del cuadro de diálogo Configuración de la base de datos.

CerradoFusión interior

Una fusión interior es uno de los comandos de unión más comunes y, a menudo, se utiliza como el tipo de unión predeterminado. En una fusión interior, se crean nuevos resultados devolviendo y combinando todas las filas de las tablas específicas que tengan valores coincidentes para el/los campo(s) de fusión que se hayan especificado. Cuando no haya coincidencias entre una fila de la Tabla A y una fila de la Tabla B, dicha fila se omite de los resultados.

Para las tablas de muestra, una fusión interior que utiliza DepartmentID como condición de fusión da como resultado el siguiente conjunto de resultados.

FirstName

DepartmentID

DepartmentName

Joe

31

Ventas

Jane

33

Ingeniería

Marca

33

Ingeniería

Mary

34

Administración

Dan

34

Administración

Dado que la ID del departamento de Donna de la Tabla A se muestra como NULL, ella no aparece en la tabla de fusión interior resultante. De forma semejante, si se le hubiera asignado una ID de departamento que no aparezca en la Tabla B, tampoco se mostraría, ya que no tendría ninguna fila correspondiente con la que asociarla.

Los valores NULL se tratan de forma diferente que otros valores y no se puede comparar al valor 0 (cero), ni siquiera a otro valor NULL. Por ello, una fusión interna no puede devolver ninguna fila que contenga un valor NULL en un campo que se esté utilizando en la condición de fusión, ya que no hay ningún valor de campo equivalente.

CerradoFusión exterior izquierda

Una fusión exterior izquierda difiere de una fusión interior en que devuelve todas las filas de la tabla izquierda (Tabla A), incluso si no hay ninguna fila correspondiente en la tabla derecha (Tabla B). Las filas de la tabla de la izquierda que no tengan una fila coincidente en la tabla de la derecha se enumeran en el resultado de la fusión con valores NULL, lo que muestra que no hay ninguna fila coincidente en la tabla de la derecha. En este ejemplo, el conjunto de resultados enumera todos los empleados, incluso si no tienen departamento asignado, como es el caso de "Donna" en la siguiente tabla.

FirstName

DepartmentID

DepartmentName

Joe

31

Ventas

Jane

33

Ingeniería

Marca

33

Ingeniería

Mary

34

Administración

Dan

34

Administración

Donna

NULL

NULL

CerradoFusión exterior derecha

Las fusiones exteriores derechas se comportan exactamente igual que las fusiones exteriores izquierdas, salvo que a la inversa, por lo que todas las entradas de la tabla derecha (Tabla B) devolverán resultados, incluso si no se corresponden con ninguna de las filas de la tabla izquierda (Table A). En este ejemplo, el conjunto de resultados enumera todos los departamentos, incluso si no hay ningún empleado asociado al departamento, como es el caso de "Marketing" en la siguiente tabla.

FirstName

DepartmentID

DepartmentName

Joe

31

Ventas

Jane

33

Ingeniería

Marca

33

Ingeniería

Mary

34

Administración

Dan

34

Administración

NULL

35

Marketing

CerradoFusión exterior completa

Una fusión exterior completa devuelve un resultado que enumera todas las filas tanto de la tabla de la derecha como de la izquierda, aunque una fila no tenga ningún valor coincidente en la otra tabla. Cuando una fila no tenga una fila coincidente en la otra tabla, el valor que falta se devuelve como NULL. En este ejemplo, este resultado incluye tanto el departamento de "Marketing", aunque no tenga empleados, como la empleada "Donna", aunque no tenga departamento asignado.

FirstName

DepartmentID

DepartmentName

Joe

31

Ventas

Jane

33

Ingeniería

Marca

33

Ingeniería

Mary

34

Administración

Dan

34

Administración

Donna

NULL

NULL

NULL

35

Marketing

Temas relacionados