Combinar tablas y consultas

Cuando se incluyen varios orígenes de datos en una consulta de Access, se usan combinaciones para limitar los registros que desea ver, en función de cómo se relacionan los orígenes de datos entre sí. También usa combinaciones para combinar registros de ambos orígenes de datos, de modo que cada par de registros de los orígenes se convierta en un registro en los resultados de la consulta.

En este artículo se debatió sobre los distintos tipos de combinaciones y se muestra cómo usarlas en una consulta. De forma predeterminada, una combinación se crea automáticamente si ya hay una relación entre dos orígenes de datos que usa en una consulta. También se crea una combinación si hay campos que se corresponden claramente entre sí. Puede eliminar una combinación creada automáticamente. En este artículo se proporciona información básica sobre las relaciones de tabla, incluido cómo crear una.

Nota: Puede unirse a consultas del mismo modo que se unen a tablas y también puede unirse a ambas.

En este artículo

Información general

Una base de datos es una colección de tablas de datos que tienen relaciones lógicas entre sí. Las relaciones se usan 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 se representa mediante una combinación.

Al agregar tablas a una consulta, Access crea combinaciones que se basan en relaciones que se han definido entre las tablas. Puede crear manualmente combinaciones en consultas, incluso si no representan relaciones que ya se han definido. Si usa otras consultas (en lugar de o además de tablas) como orígenes de datos para una consulta, puede crear combinaciones entre las consultas de origen y también entre esas consultas y las tablas que use como orígenes de datos.

Las combinaciones se comportan de forma similar a los criterios de consulta, ya que establecen reglas que los datos deben coincidir para incluirse en las operaciones de consulta. A diferencia de los criterios, las combinaciones también especifican que cada par de filas que cumplan las condiciones de combinación se combinarán en el conjunto de registros para formar una sola fila.

Hay cuatro tipos básicos de combinaciones: combinaciones internas, combinaciones externas, combinaciones cruzadas y combinaciones desiguales. En este artículo se explora cada tipo de combinación que puede usar, por qué usa cada tipo y cómo crear las combinaciones.

Las combinaciones son para consultar qué relaciones son con las tablas: una indicación de cómo se pueden combinar los datos de dos orígenes en función de los valores de datos que tienen en común. Esta es una ilustración de una combinación en la vista Diseño de la consulta, con las propiedades de la combinación abiertas en un cuadro de diálogo:

El cuadro Propiedades de la combinación.

Esta línea entre las tablas representa la combinación. Haga doble clic en una combinación para abrir el cuadro de diálogo Propiedades de combinación (representado) y revisar o cambiar la combinación.

Las combinaciones a veces son direccionales. Este área del cuadro de diálogo muestra qué tabla es la que se encuentra en la combinación y qué campos se usan para unir las tablas.

Este área determina el tipo de combinación: la opción 1 es una combinación interna, 2 es una combinación externa izquierda y 3 es una combinación externa derecha.

Se pueden usar campos de ambas tablas y los datos que pertenecen a una tarea determinada se muestran de cada una. En una combinación interna, no se incluyen otros datos. En una combinación externa, los registros no relacionados de una tabla también se incluyen en los resultados de la consulta.

Volver al principio

Tipos de combinaciones

Hay cuatro tipos básicos de combinaciones: combinaciones internas, combinaciones externas, combinaciones cruzadas y combinaciones desiguales. Las combinaciones cruzadas y las combinaciones desiguales son tipos de combinación avanzados y rara vez se usan, pero debe conocerlas para tener una comprensión completa de cómo funcionan las combinaciones.

Combinaciones internas: solo se combinan los datos relacionados de ambas tablas

Una combinación interna es una en la que Access solo incluye datos de una tabla si hay datos correspondientes en la tabla relacionada y viceversa. La mayoría de las veces, usará combinaciones internas. Cuando crea una combinación y no especifica qué tipo de combinación es, Access asume que desea una combinación interna. Las combinaciones internas son útiles porque le permiten combinar datos de dos orígenes en función de valores compartidos, por lo que solo verá los datos cuando haya una imagen completa.

Combinaciones externas: todos los datos relacionados se combinaron correctamente, además de todos los registros restantes de una tabla

Una combinación externa es como una combinación interna, pero agrega las filas restantes de una de las tablas. Las combinaciones externas son direccionales: una combinación externa izquierda incluye todos los registros de la tabla izquierda (la primera tabla de la combinación) y una combinación externa derecha incluye todos los registros de la tabla derecha, la segunda tabla de la combinación.

Combinaciones externas completa: todos los datos, combinados donde sea posible

En algunos sistemas, una combinación externa puede incluir todas las filas de ambas tablas, con filas combinadas cuando se correspondan. Esto se denomina una combinación externa completa y Access no las admite explícitamente. Sin embargo, puede usar una combinación cruzada y criterios para lograr el mismo efecto.

Combinaciones cruzadas: todos los datos, combinados de todas las maneras posibles

La mayoría de las veces, una combinación cruzada es un efecto secundario de agregar dos tablas a una consulta y, después, olvidarse de unirse a ellas. Access interpreta esto para significar que desea ver todos los registros de una tabla combinados con cada registro de la otra tabla: todas las combinaciones posibles de registros. Como no se pueden combinar datos, este tipo de combinación rara vez produce resultados útiles. Pero hay algunos casos en los que una combinación cruzada es justo lo que necesita.

Combinaciones desiguales: como una combinación normal, pero usando una comparación diferente para combinar filas

Las combinaciones desiguales usan un operador distinto del signo igual (=) para comparar valores y determinar si se combinan los datos y cómo combinarlos. Las combinaciones desiguales no se admiten explícitamente, pero puede usar una combinación cruzada y criterios para lograr el mismo efecto.

Mostrar filas donde existe un valor común en ambas tablas unidas

Si desea mostrar solo las filas que tienen valores coincidentes en el campo unido, use una combinación interna. Access crea combinaciones internas automáticamente.

Las combinaciones internas son el tipo de combinación más común. Dicen a una consulta que las filas de una de las tablas unidas corresponden a filas de la otra tabla, en función de los datos de los campos unidos. Cuando se ejecuta una consulta con una combinación interna, solo se incluirán en las operaciones de consulta aquellas filas en las que exista un valor común en ambas tablas unidas.

¿Cómo puedo usar una combinación interna?

La mayoría de las veces, no es necesario hacer nada para usar una combinación interna. Si las tablas que agrega a una consulta ya tienen relaciones, Access crea automáticamente una combinación interna entre cada par de tablas relacionadas, al agregar las tablas. Si se aplica la integridad referencial, Access muestra también un "1" sobre la línea de la combinación para indicar la tabla del lado "uno" de una relación de uno a varios y un símbolo de infinito () para indicar la tabla del lado "varios".

Incluso si no ha creado relaciones, Access crea automáticamente combinaciones internas si agrega dos tablas a una consulta y cada una de ellas tiene un campo con el mismo tipo de datos o compatible y uno de los campos de combinación es un clave principal. Los símbolos "uno" y "varios" no se muestran en este caso, porque no se exige la integridad referencial.

Si agrega consultas a la consulta y no ha creado relaciones entre esas consultas, Access no crea automáticamente combinaciones internas entre esas consultas o entre consultas y tablas. Por lo general, debería crearlas usted mismo. Para crear una combinación interna, arrastre un campo de un origen de datos a un campo de otro origen de datos. Access muestra una línea entre los dos campos para señalar que se ha creado una combinación.

SQL sintaxis de una combinación interna

Las combinaciones internas se especifican en SQL en la cláusula FROM, como se muestra a continuación:

FROM tabla1 INNER JOIN tabla2 ON tabla1.campo1 comparar tabla2.campo2

La operación INNER JOIN consta de las siguientes partes:

Parte

Descripción

tabla1, tabla2

Nombres de las tablas cuyos registros se combinan.

campo1, campo2

Nombres de los campos que se combinan. Si no son numéricos, los campos deben ser del mismo tipo de datos y contener la misma clase de datos, pero pueden tener nombres distintos.

comparar

Cualquier operador de comparación relacional: "=", "<", ">", "<=", ">=" o "<>".

Para obtener más información sobre la sintaxis de la combinación interna, vea el tema Operación INNER JOIN.

Volver al principio

Mostrar todas las filas de una tabla y las filas correspondientes de la otra tabla

Las combinaciones externas dicen a una consulta que, aunque algunas de las filas de ambos lados de la combinación se corresponden exactamente, la consulta debe incluir todas las filas de una tabla y también las filas de la otra tabla que comparten un valor común a ambos lados de la combinación.

Las combinaciones externas pueden ser combinaciones externas izquierdas o pueden ser combinaciones externas derechas. En una combinación externa izquierda, la consulta incluye todas las filas de la primera tabla en la cláusula FROM de la instrucción SQL y solo las filas de la otra tabla en las que el campo de combinación contiene valores comunes a ambas tablas. En una combinación externa derecha, la consulta incluye todas las filas de la segunda tabla en la cláusula FROM de la instrucción SQL y solo las filas de la otra tabla en las que el campo de combinación contiene valores comunes a ambas tablas.

Nota: Puede saber fácilmente qué tabla es la tabla izquierda o la tabla derecha en una combinación dada haciendo doble clic en la combinación y, a continuación, buscando en el cuadro de diálogo Propiedades de combinación. También puede cambiar a SQL y, a continuación, examinar la cláusula FROM.

Como algunas de las filas de un lado de una combinación externa no tendrán las filas correspondientes de la otra tabla, algunos de los campos devueltos en la consulta se mostrarán vacíos cuando las filas no se correspondan.

¿Cómo puedo usar una combinación externa?

Puede crear una combinación externa modificando una combinación interna existente. Si no existe ninguna combinación interna, cree una y, después, cámbila a una combinación externa.

Cambiar una combinación interna a una combinación externa

  1. En la vista Diseño de la consulta, haga doble clic en la combinación que desea cambiar.

    Aparece el cuadro de diálogo Propiedades de la combinación.

  2. En el cuadro de diálogo Propiedades de combinación, anote las opciones que aparecen junto a la opción 2 y la opción 3.

  3. Haga clic en la opción que quiera usar y, después, haga clic en Aceptar.

  4. Access muestra la combinación y muestra una flecha que apunta desde el origen de datos donde se incluirán todas las filas en el origen de datos donde solo se incluirán aquellas filas que cumplan la condición de combinación.

Combinaciones externas ambiguas

Si crea una consulta que contiene una COMBINACIÓN IZQUIERDA y una COMBINACIÓN INTERNA, es posible que Access no pueda determinar qué operación de combinación debe realizar primero. Como los resultados son diferentes dependiendo de si primero se realiza la combinación izquierda o la combinación interna, Access muestra un mensaje de error:

Para corregir este error, debe modificar la consulta para que esté claro qué combinación realizar primero.

SQL sintaxis de una combinación externa

Las combinaciones externas se especifican en SQL en la cláusula FROM, como se muestra a continuación:

FROM tabla1 [ izquierda | DERECHA ] UNIR tabla2
EN tabla1.campo1 comparar tabla2.campo2

Las operaciones LEFT JOIN y RIGHT JOIN constan de las siguientes partes:

Parte

Descripción

tabla1, tabla2

Nombres de las tablas cuyos registros se combinan.

campo1, campo2

Nombres de los campos que se combinan. Estos campos deben ser del mismo tipo de datos y contener la misma clase de datos, pero no tienen que tener el mismo nombre.

comparar

Cualquier operador de comparación relacional: "=", "<", ">", "<=", ">=" o "<>".

Para obtener más información sobre la sintaxis de la combinación externa, vea el tema LEFT JOIN, RIGHT JOIN Operations.

Volver al principio

Mostrar todas las filas de ambas tablas y unirse a ellas donde existe un valor común

Si desea mostrar todas las filas de dos tablas y unirlas en función de valores comunes, use una combinación externa completa. Access no admite explícitamente combinaciones externas completa, pero puede lograr el mismo efecto mediante una consulta de unión. En el procedimiento siguiente se explica cómo hacerlo, pero si desea obtener más información sobre las consultas de unión, vea la sección Vea también.

Para usar una consulta de unión para realizar una combinación externa completa:

  1. Cree una consulta que tenga una combinación externa izquierda en el campo que desee usar para una combinación externa completa.

  2. En el grupo Vistas de la pestaña Inicio, haga clic en Vista y, después, en Vista SQL.

  3. Presione CTRL+C para copiar el SQL código.

  4. Elimine el punto y coma al final de la cláusula FROM y presione ENTRAR.

  5. Escriba UNION y presione ENTRAR.

    Nota: No use la palabra clave ALL cuando use una consulta de unión para realizar una combinación externa completa.

  6. Presione CTRL+V para pegar el SQL que copió en el paso 3.

  7. En el código que ha pegar, cambie LEFT JOIN a RIGHT JOIN.

  8. Elimine el punto y coma al final de la segunda cláusula FROM y, después, presione ENTRAR.

  9. Agregue una cláusula WHERE que especifique que el valor del campo de combinación es NULL en la primera tabla enumerada en la cláusula FROM (la tabla izquierda).

    Por ejemplo, si la cláusula FROM es:

    FROM Products RIGHT JOIN [Order Details] 
    ON Products.ID = [Order Details].[Product ID]

    Agregaría la siguiente cláusula WHERE:

    WHERE Products.ID IS NULL

  10. Escriba un punto y coma (;) al final de la cláusula WHERE para indicar el final de la consulta de unión.

  11. En la pestaña Diseño, en el grupo Resultados, haga clic en Ejecutar.

Combinaciones cruzadas

Las combinaciones cruzadas son diferentes de las combinaciones internas y externas, ya que no se representan explícitamente en Access. En una combinación cruzada, cada fila de una tabla se combina con cada fila de otra tabla, lo que da como resultado lo que se denomina un producto cruzado o un producto cartesiano. Cada vez que ejecute una consulta que tenga tablas que no se han unido explícitamente, el resultado es un producto cruzado. Las combinaciones cruzadas suelen ser involuntarias, pero hay casos en los que pueden ser útiles.

¿Por qué usaría una combinación cruzada?

Si desea examinar todas las combinaciones posibles de filas entre dos tablas o consultas, use una combinación cruzada. Por ejemplo, supongamos que su empresa ha tenido un año espectacular y está pensando en dar descuentos a sus clientes. Puede crear una consulta que sume las compras de cada cliente, crear una tabla pequeña que tenga varios posibles porcentajes de devolución y combinar las dos de otra consulta que realice una combinación cruzada. Termina con una consulta que muestra un conjunto de reembolsos hipotéticos para cada cliente.

¿Cómo puedo usar una combinación cruzada?

Una combinación cruzada se produce siempre que incluya tablas o consultas en la consulta y no cree al menos una combinación explícita para cada tabla o consulta. Access combina todas las filas de cada tabla o consulta que no se han unido explícitamente a ninguna otra tabla o consulta a las demás filas de los resultados. Considere el escenario de devolución del párrafo anterior. Suponga que tiene 91 clientes y que desea ver cinco posibles porcentajes de reembolso. La combinación cruzada produce 455 filas (el producto de 91 y 5).

Como puede imaginar, las combinaciones cruzadas no intencionadas pueden crear un gran número de filas en los resultados de la consulta. Además, estos resultados generalmente no tienen sentido, ya que si realmente no tiene la intención de combinar todas las filas con otras filas, la mayoría de las filas combinadas que aparecen en los resultados no tendrán sentido. Por último, las consultas que usan combinaciones cruzadas no intencionados pueden tardar mucho tiempo en ejecutarse.

Combinación cruzada involuntaria en la vista Diseño de la consulta

1. Los campos con círculos deben unirse entre sí.

Producto cruzado no intencionado

1. Observe el gran número de registros.

Resultado de consulta corregido

1. Tenga en cuenta que el número de registros es mucho menor.

Volver al principio

Unir tablas basadas en una inequidad de valores de campo

Las combinaciones no tienen que basarse en la equivalencia de los campos unidos. Una combinación puede basarse en cualquier operador de comparación, como mayor que (>), menor que (<), o no es igual (<>). Las combinaciones que no se basan en la equivalencia se denominan combinaciones desiguales.

Si desea combinar las filas de dos orígenes de datos basados en valores de campo que no son iguales, use una combinación desigual. Normalmente, las combinaciones desiguales se basan en los operadores de comparación mayor que (>), menor que (<), mayor o igual que (>=), o menor o igual que (< =). Las combinaciones desiguales que se basan en el operador no igual (<>) pueden devolver casi tantas filas como combinaciones cruzadas y los resultados pueden ser difíciles de interpretar.

¿Cómo puedo usar una combinación desigual?

Las combinaciones desiguales no se admiten en la vista Diseño. Si desea usarlos, debe hacerlo con SQL vista. Sin embargo, puede crear una combinación en la vista Diseño, cambiar SQL la vista, buscar el operador de comparación igual (=) y cambiarlo al operador que desea usar. Después de hacer esto, solo puede abrir la consulta en la vista Diseño de nuevo si primero vuelve a cambiar el operador de comparación a igual (=) en SQL vista.

Eliminar una combinación

Si Access crea automáticamente una combinación que no desea o si crea una combinación por error (por ejemplo, una combinación entre dos campos que tienen tipos de datos diferentes), puede eliminar la combinación.

  1. En la cuadrícula de diseño de la consulta, haga clic en la combinación que desea quitar.

  2. Presione SUPRIMIR.

O

  • En la cuadrícula de diseño de la consulta, haga clic con el botón derecho en la combinación que desea quitar y, a continuación, haga clic en Eliminar.

Volver al principio

Vea también

Agregar registros a una

Crear,

¿Necesita más ayuda?

Ampliar sus conocimientos de Office
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×