MS Access - Uniones

Una base de datos es una colección de tablas de datos que permiten relaciones lógicas entre sí. Utiliza relaciones para conectar tablas por campos que tienen en común. Una tabla puede formar parte de cualquier número de relaciones, pero cada relación siempre tiene exactamente dos tablas. En una consulta, una relación está representada por unJoin.

Que es Join

Una combinación especifica cómo combinar registros de dos o más tablas en una base de datos. Conceptualmente, una combinación es muy similar a una relación de tabla. De hecho, las uniones son para consultas qué relaciones son para tablas.

Los siguientes son los dos tipos básicos de combinaciones que discutiremos en este capítulo:

  • La unión interna
  • La unión externa

Ambos se pueden crear fácilmente a partir de un queries design view.

Unir internamente

Ahora entendamos Inner Join -

  • El tipo más común de combinación es una combinación interna, que también es el tipo de combinación predeterminado en Microsoft Access.
  • Inner Join mostrará solo las filas o registros donde los campos combinados de ambas tablas son iguales.
  • Este tipo de combinación examina esos campos comunes y los datos que contienen. Solo muestra los partidos.

Unión externa

Entendamos ahora qué Outer Join es -

  • Una combinación externa muestra todas las filas de una tabla y solo aquellas filas o registros de la otra tabla donde los campos combinados son iguales.
  • En otras palabras, una combinación externa muestra todas las filas de una tabla y solo las filas correspondientes de la otra tabla.

También hay otros tipos de combinación:

Unión exterior izquierda y unión exterior derecha

Ahora entendamos Left Outer Join y Right Outer Join -

  • Puede elegir la tabla que mostrará todas las filas.
  • Puede crear una unión externa izquierda que incluirá todas las filas de la primera tabla.
  • Puede crear una unión externa derecha que incluirá todas las filas de la segunda tabla.

Vayamos ahora al Create pestaña y cree una consulta desde la Design View. SeleccionetblProjects y tblTasks y cierre el cuadro de diálogo Mostrar tabla como en la siguiente captura de pantalla.

Añade el ProjectName campo de tblProjectsy TaskTitle, StartDate y DueDate desde tblTasks mesa.

Ejecutemos ahora la consulta.

Solo mostramos registros de algunos proyectos. Un par de estos proyectos tienen muchas tareas asociadas con ese proyecto y esta información se relaciona a través deProjectID campo.

  • Cuando creamos esta consulta en Microsoft Access, Access toma esta relación de las relaciones que hemos creado.

  • De forma predeterminada, está creando lo que se conoce como Inner Join between these two fields, entre estas dos tablas, y así es como se relaciona esta información de estas dos tablas.

  • Nos muestra solo las coincidencias, por lo que cuando ejecutamos esta consulta, hay muchos otros proyectos enumerados en tblProjects que no aparecen como parte de nuestro conjunto de registros en esta consulta, y eso se debe a cómo se unen estas dos tablas, a través de esa Inner Join, que es nuevamente, la Join predeterminada para cualquier consulta.

Sin embargo, si desea modificar la relación, digamos que desea crear una combinación externa o, en otras palabras, mostrar todos los proyectos de tblProjects, cada registro que está en esa tabla, junto con todas las tareas de tblTasks- Propiedades de unión abierta; podemos hacer esto simplemente haciendo doble clic en la línea de relación.

Access mostrará el nombre de la tabla izquierda y el nombre de la tabla derecha en el cuadro de diálogo Propiedades de unión.

  • El nombre de la columna de la izquierda y el nombre de la columna de la derecha y el primer botón de opción es para incluir solo filas donde los campos de combinación de ambas tablas son iguales y esa es la combinación interna y eso es lo que se selecciona de forma predeterminada al crear relaciones, al crear una combinación en la consulta, pero puede cambiarlo.

  • También tenemos otras dos opciones; podemos incluir todos los registros detblProjects, y solo aquellos registros de tblTasks donde los campos unidos son iguales y este es Left Outer Join.

  • Tenemos una tercera opción, incluir todos los registros de tblTasks y solo aquellos registros de tblProjects donde los campos unidos son iguales y este es Right Outer Join.

Estos son los diferentes tipos de uniones que puede crear fácilmente desde la Vista de diseño. Seleccionemos la segunda opción, que es Unión externa izquierda, y hagamos clicOk.

Veamos ahora los otros pasos:

Cuando mires la línea de relación, verás una pequeña flecha apuntando hacia ProjectID en tblTasks. Cuando ejecute esta consulta, verá los siguientes resultados.

Como puede ver, nos muestra todos los nombres de los proyectos, tenga o no una tarea relacionada. También verá un montón de campos nulos. Todo esto estará en blanco porque no hay información relacionada entblTasks, de donde provienen estos campos. Vayamos ahora alDesign View nuevamente y haga doble clic en la línea de relación.

En el cuadro de diálogo Propiedades de unión, seleccione la tercera opción que es para Unión externa derecha y haga clic en Ok.

Ahora mire nuestra línea de relación. Verá que ahora una pequeña flecha apunta haciaProjectID en tblProjects. Cuando ejecute esta consulta, verá los siguientes resultados.

Autouniones

Self-join es otro tipo de Join. Una autocombinación relaciona los campos coincidentes dentro de la misma tabla. Por ejemplo, mire la tabla del empleado con un campo de supervisor, que hace referencia al mismo tipo de número almacenado en otro campo dentro de la misma tabla: la identificación del empleado.

Si quisiéramos saber quién es el supervisor de Kaitlin Rasmussen, tendremos que tomar el número almacenado en ese campo de supervisor y buscarlo en la misma tabla exacta en ese campo de identificación de empleado para saber que Charity Hendricks es el supervisor.

Esta tabla no es la estructura ideal para una base de datos relacional porque no está normalizada.

Si tenemos una situación en la que queremos crear una consulta que solo enumere los nombres de los empleados junto con los nombres de sus supervisores, no hay una manera fácil de que podamos consultar eso a menos que creemos una Autocombinación.

Para ver una Autocombinación, cree una tabla con los siguientes campos e ingrese algunos datos.

Aquí queremos volver a crear una lista con el nombre del empleado y luego el nombre del supervisor. Creemos una consulta desde elquery design view.

Ahora, agregue tblEmployees mesas.

Cierre este cuadro de diálogo.

Ahora, agregue el nombre y apellido de nuestros empleados.

Ahora necesitamos una forma de crear una relación entre esta tabla y ella misma. Para hacer eso, necesitamos abrirthe show table dialog box y agregue tblEmployees una vez más.

Hemos creado otra copia de la misma tabla en esta vista de consulta. Ahora, necesitamos crear Self-join. Para hacer eso, haga clic en Supervisor entblEmployees mesa y mantenga presionado el botón del mouse y suéltelo justo encima de la EmployeeID en esa tabla copiada - tblEmployees_1. Luego, agregue el nombre y apellido de esa tabla copiada.

Ejecutemos ahora su consulta y verá los siguientes resultados.

Muestra los nombres de los empleados junto con los nombres de sus supervisores. Y así es como se crea una autocombinación en Microsoft Access.