Al incluir varios orígenes de datos en una consulta de Access, se usan combinaciones para limitar los registros que se desean ver, en función de cómo se relacionan los orígenes de datos entre sí. También se usan 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 solo registro en los resultados de la consulta.
En este artículo se describen los distintos tipos de combinaciones y se muestra cómo usarlas en una consulta. De forma predeterminada, se crea una combinación automáticamente si ya existe 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 unión creada automáticamente. En este artículo se proporciona información básica sobre las relaciones de tablas, incluido cómo crear una.
Nota
Puede combinar consultas de la misma manera que se unen tablas, y también se pueden unir ambas.
En este artículo...
- Información general
- Tipos de combinaciones
- Mostrar filas en las que existe un valor común en ambas tablas combinadas
- Mostrar todas las filas de una tabla y las filas correspondientes de la otra tabla
- Mostrar todas las filas de ambas tablas y unirlas cuando exista un valor común
- Combinaciones cruzadas
- Unir tablas basadas en una desigualdad de valores de campo
- Eliminar una combinación
Información general
Una base de datos es un conjunto 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.
Cuando agrega tablas a una consulta, Access crea combinaciones que se basan en las relaciones definidas entre las tablas. Puede crear combinaciones manualmente en las consultas, incluso si no representan relaciones que ya se han definido. Si usa otras consultas (en lugar de tablas, o además de tablas) como orígenes de datos para una consulta, puede crear combinaciones entre las consultas de origen, así como entre esas consultas y cualquier tabla que use como orígenes de datos.
Las combinaciones se comportan de forma similar a los criterios de búsqueda en el sentido de 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.
Existen 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 puedes usar, por qué usas cada tipo y cómo crear las combinaciones.
Las combinaciones son a las consultas lo que las relaciones son a 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. A continuación se muestra una ilustración de una combinación en la vista Diseño de una consulta, con las propiedades de la combinación abiertas en un cuadro de diálogo:
Esta línea entre las tablas representa la unión. Haga doble clic en una combinación para abrir el cuadro de diálogo Propiedades de la combinación (en la imagen) y revisar o cambiar la combinación.
Las combinaciones a veces son direccionales. Esta área del cuadro de diálogo muestra qué tabla es cuál en la combinación y qué campos se usan para unir las tablas.
Esta área determina el tipo de unión: la opción 1 es una unión interna, 2 es una unión externa izquierda y 3 es una unión externa derecha.
Se pueden usar campos de ambas tablas y se muestran datos relacionados con una tarea determinada de cada una. En una combinación interna, no se incluye ningún otro dato. En una combinación externa, los registros no relacionados de una tabla también se incluyen en los resultados de la consulta.
Tipos de combinaciones
Existen 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 combinaciones avanzadas y rara vez se usan, pero debe conocerlas para tener una comprensión completa de cómo funcionan las combinaciones.
Combinaciones internas: solo datos relacionados de ambas tablas combinadas
Una combinación interna es aquella 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ás uniones internas. Cuando crea una combinación y no especifica de qué tipo de unión se trata, Access asume que quiere una combinación interna. Las combinaciones internas son útiles porque permiten combinar datos de dos orígenes en función de valores compartidos, de modo que solo verá los datos cuando haya una imagen completa.
Combinaciones externas: todos los datos relacionados combinados correctamente, más 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 completas: todos los datos, combinados cuando sea posible
En algunos sistemas, una combinación externa puede incluir todas las filas de ambas tablas, con filas combinadas cuando corresponden. Esto se denomina unió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 formas 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 unirlas. Access interpreta esto en el sentido de que desea ver todos los registros de una tabla combinados con todos los registros de la otra tabla, es decir, 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 unión cruzada es justo lo que necesita.
Uniones desiguales: como una unión normal, pero con una comparación diferente para combinar filas
Las combinaciones desiguales usan un operador distinto del signo igual (=) para comparar valores y determinar si se quieren combinar 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 en las que existe un valor común en ambas tablas combinadas
Si desea mostrar solo las filas que tienen valores coincidentes en el campo combinado, use una combinación interna. Access crea automáticamente combinaciones internas.
Las combinaciones internas son el tipo de combinación más común. Indican a la consulta que las filas de una de las tablas combinadas corresponden a las filas de la otra tabla, basándose en los datos de los campos combinados. Cuando se ejecuta una consulta con una combinación interna, solo se incluirán en las operaciones de consulta las filas en las que exista un valor común en ambas tablas combinadas.
Cómo usar una combinación interna?
La mayoría de las veces, no es necesario hacer nada para usar una unión interna. Si las tablas que agregue 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 también muestra un "1" sobre la línea de combinación para mostrar qué tabla está en el lado "uno" de una relación de uno a varios y un símbolo de infinito (∞) para mostrar qué tabla está en el 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 esas tablas tiene un campo con el mismo tipo de datos o uno de los campos de combinación es una clave principal. Los símbolos "uno" y "varios" no se muestran en este caso porque no se aplica 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, debe crearlos usted mismo. Para crear una combinación interna, arrastre un campo desde 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.
Sintaxis de SQL para una combinación interna
Las combinaciones internas se especifican en SQL en la cláusula FROM, como se muestra a continuación:
FROM table1 INNER JOIN table2 ON table1. Field1 Compare Table2. 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 el mismo tipo de datos, pero no tienen que tener el mismo nombre. |
| comparar | Cualquier operador de comparación relacional: "=," "<," ">=," "<=," o> "<>." |
Para obtener más información acerca de la sintaxis de inner join, vea el tema INNER JOIN Operation.
Mostrar todas las filas de una tabla y las filas correspondientes de la otra tabla
Las combinaciones externas indican a la 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 en ambos lados de la combinación.
Las combinaciones externas pueden ser combinaciones externas a la izquierda o combinaciones externas a la derecha. En una combinación externa izquierda, la consulta incluye todas las filas de la primera tabla de 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 de derecha, la consulta incluye todas las filas de la segunda tabla de 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
Para saber fácilmente qué tabla es la tabla izquierda o la tabla derecha en una combinación determinada, haga doble clic en la combinación y, a continuación, consulte el cuadro de diálogo Propiedades de la combinación . También puede cambiar a la vista SQL y, a continuación, examinar la cláusula FROM.
Dado que algunas de las filas de un lado de una combinación externa no tendrán filas correspondientes de la otra tabla, algunos de los campos devueltos en los resultados de la consulta de esa otra tabla estarán vacíos cuando las filas no se correspondan.
Cómo usar una combinación externa?
Para crear una combinación externa, modifique una combinación interna existente. Si no existe ninguna combinación interna, cree una y, a continuación, cámbiela por una combinación externa.
Cambiar una combinación interna a una combinación externa
- 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. - En el cuadro de diálogo Propiedades de combinación , observe las opciones que aparecen junto a las opciones 2 y 3.
- Haga clic en la opción que quiera usar y, después, haga clic en Aceptar.
- Access muestra la combinación y muestra una flecha que señala desde el origen de datos donde se incluirán todas las filas hasta el origen de datos donde solo se incluirán las 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 realizar primero. Dado que los resultados son diferentes dependiendo de si la combinación izquierda o la combinación interna se realiza primero, Access muestra un mensaje de error:
Para corregir este error, debe modificar la consulta para que quede claro qué combinación realizar primero.
Sintaxis de SQL para una combinación externa
Las combinaciones externas se especifican en SQL en la cláusula FROM, como se muestra a continuación:
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 compare table2.field2
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. Los campos deben ser del mismo tipo de datos y contener el mismo tipo de datos, pero no es necesario que tengan el mismo nombre. |
| comparar | Cualquier operador de comparación relacional: "=," "<," ">=," "<=," o> "<>." |
Para obtener más información sobre la sintaxis de combinación externa, vea el tema Operaciones de combinación a la izquierda, combinación a la derecha.
Mostrar todas las filas de ambas tablas y unirlas cuando exista 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 completas, pero puede lograr el mismo efecto mediante una consulta de unión. El siguiente procedimiento explica cómo hacerlo, pero si desea obtener más información sobre las consultas de unión, consulte la sección Vea también .
Para usar una consulta de unión para realizar una combinación externa completa:
Cree una consulta que tenga una combinación externa izquierda en el campo que desea usar para una combinación externa completa.
En el grupo Vistas de la pestaña Inicio, haga clic en Vista y, después, en Vista SQL.
Presione CTRL+C para copiar el código SQL.
Elimine el punto y coma al final de la cláusula FROM y, a continuación, presione ENTRAR.
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.
Presione CTRL+V para pegar el código SQL copiado en el paso 3.
En el código que pegó, cambie LEFT JOIN a RIGHT JOIN.
Elimine el punto y coma al final de la segunda cláusula FROM y presione ENTRAR.
Agregue una cláusula WHERE que especifique que el valor del campo de combinación es NULL en la primera tabla que aparece 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]Debe agregar la siguiente cláusula WHERE:
WHERE Products.ID IS NULLEscriba un punto y coma (;) al final de la cláusula WHERE para indicar el final de la consulta de unión.
En la pestaña Diseño, en el grupo Resultados, haga clic en Ejecutar.
Combinaciones cruzadas
Las combinaciones cruzadas se diferencian de las combinaciones internas y externas en que no se representan explícitamente en Access. En una unió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 unen explícitamente, el resultado es un producto cruzado. Las combinaciones cruzadas generalmente no son intencionales, pero hay casos en los que pueden ser útiles.
¿Por qué debería usar una unió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 negocio ha tenido un año espectacular y está considerando otorgar reembolsos a sus clientes. Puede crear una consulta que sume las compras de cada cliente, crear una tabla pequeña que tenga varios porcentajes de reembolso posibles y combinar los dos en 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 uso una unión cruzada?
Una combinación cruzada se produce cada vez 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 hayan unido explícitamente a ninguna otra tabla o consulta con todas las filas alternas de los resultados. Considere el escenario de reembolso del párrafo anterior. Supongamos que tiene 91 clientes y que desea ver cinco posibles porcentajes de reembolso. Su combinación cruzada produce 455 filas (el producto de 91 y 5).
Como puede imaginar, las combinaciones cruzadas involuntarias 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 no tiene la intención de combinar cada fila con todas las demás, la mayoría de las filas combinadas que aparecen en los resultados no tendrán sentido. Por último, las consultas que usan combinaciones cruzadas involuntarias pueden tardar mucho tiempo en ejecutarse.
1. Los campos rodeados deben estar unidos entre sí.
1. Tenga en cuenta el gran número de registros.
1. Tenga en cuenta que el número de registros es mucho menor.
Unir tablas basadas en una desigualdad de valores de campo
Las combinaciones no tienen por qué basarse en la equivalencia de los campos combinados. Una combinación se puede basar en cualquier operador de comparación, como mayor que (>), menor que (<) o no igual a (<>). 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 unió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 basadas en el operador no es igual (<>) pueden devolver casi tantas filas como combinaciones cruzadas, y los resultados pueden ser difíciles de interpretar.
Cómo usar una unión desigual?
Las combinaciones desiguales no se admiten en la vista Diseño. Si desea usarlas, debe hacerlo mediante la vista SQL. Sin embargo, puede crear una combinación en la vista Diseño, cambiar a la vista SQL, encontrar el operador de comparación igual (=) y cambiarlo por el operador que desea usar. Después de hacer esto, solo puede volver a abrir la consulta en la vista Diseño si primero cambia el operador de comparación a igual (=) en la vista SQL.
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 con tipos de datos diferentes), puede eliminar la combinación.
- En la cuadrícula de diseño de la consulta, haga clic en la combinación que desea quitar.
- Presione SUPRIMIR.
O bien:
- En la cuadrícula de diseño de la consulta, haga clic con el botón secundario en la combinación que desea quitar y, después, haga clic en Eliminar.
Agregar registros a una tabla mediante una consulta de datos anexadosCombinar los resultados de varias consultas de selección mediante una consulta de uniónCrear una consulta basada en varias tablasCrear, modificar o eliminar una relación