Combinar tablas y consultas

Importante:  Este artículo se ha traducido con traducción automática; vea la declinación de responsabilidades. Para su referencia, puede encontrar la versión en inglés de este artículo aquí.

Cuando una consulta abarca varios orígenes de datos, se recurre a las combinaciones para limitar los registros que se quiere ver según la relación que guarden entre sí los orígenes de datos. Las combinaciones también sirven para combinar registros de dos orígenes de datos, de manera que cada par de registros pasa a ser un solo registro en los resultados de la consulta.

En este artículo se describe los distintos tipos de combinaciones y muestra cómo usarlas en una consulta. De forma predeterminada, se crea automáticamente una combinación si ya hay una relación entre dos orígenes de datos que usan en una consulta. También se crea una unión si existen campos que 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 tablas, incluido cómo crear uno.

Nota: Puede unirse a las consultas de la misma manera que combinar tablas y también puede combinar ambos.

En este artículo:

Información general

Mostrar filas donde 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 combinarlas donde existe un valor común

Combinaciones cruzadas

Combinar tablas según una desigualdad de valores de campo

Eliminar una combinación

Información general

Una base de datos es una colección de tablas de datos que se guardan relaciones lógicas entre sí. Use las relaciones para conectar las tablas según los campos que tienen en común. Una tabla puede ser parte de cualquier número de relaciones, pero cada relación siempre tiene exactamente dos tablas. En una consulta, se representa una relación con una combinación.

Cuando se agregan tablas a una consulta, Microsoft Office Access 2007 crea combinaciones basadas en las relaciones que se han definido entre las tablas. Se pueden crear manualmente combinaciones en las consultas, incluso si no representan relaciones ya definidas. Si se usan otras consultas (en vez de las tablas o además de ellas) como origen de los datos de una consulta, se pueden crear combinaciones entre las consultas de origen y también entre esas consultas y todas las tablas que se usen como origen de datos.

Las combinaciones se comportan de manera similar a los criterios de consulta ya que establecen reglas que deben cumplir los datos que se van a incluir en las operaciones de consulta. A diferencia de los criterios, las combinaciones especifican asimismo que cada par de filas que cumplan las condiciones de combinación se combinen en el conjunto de registros para formar una sola fila.

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

Principio de página

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

Una combinación interna se usa cuando se quiere mostrar únicamente las filas que tienen los mismos valores en el campo combinado. Access crea combinaciones internas de manera automática.

Las combinaciones internas son el tipo de combinación más común. Indican a una consulta que las filas de una de las tablas combinadas corresponden a las filas de otra tabla, basándose en los datos incluidos en los campos combinados. Cuando se ejecuta una consulta con una combinación interna, se incluirán en las operaciones de consulta únicamente las filas en las que haya un valor común en ambas tablas combinadas.

¿Cómo se usa una combinación interna?

La mayoría de los casos, no es necesario hacer nada para usar una combinación interna. Si las tablas que se agregan 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 integridad referencial, Access también muestra un "1" sobre la línea de 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".

Aunque no se hayan creado relaciones, Access crea automáticamente combinaciones internas si se agregan dos tablas a una consulta y cada una de esas tablas tiene un campo con un tipo de datos igual o compatible y uno de los campos combinados es una clave principal. Los símbolos de "uno" y "varios" no se muestran en este caso porque no se aplica la integridad referencial.

Si se agregan consultas a una consulta y no se crean relaciones entre esas consultas, Access no crea automáticamente combinaciones internas entre esas consultas o entre las consultas y las tablas. En general, es el usuario quien tiene que crearlas. Para crear una combinación interna, se arrastra 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 indicar que se ha creado una combinación.

Sintaxis SQL para una combinación interna

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

FROM tabla1 INNER JOIN tabla2 ON tabla1.campo1operadordecomparación 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 no tienen que tener el mismo nombre.

operadordecomparación

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

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

Principio de página

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

Las combinaciones externas indican a una consulta que, si bien algunas de las filas en ambos lados de la combinación coinciden exactamente, la consulta debe incluir todas las filas de una tabla así como 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 izquierdas o combinaciones derechas. En una combinación izquierda, la consulta incluye todas las filas de la primera tabla de la declaración SQL de la cláusula FROM y sólo las filas de la otra tabla donde el campo de combinación contiene valores comunes de ambas tablas. En una combinación derecha, la consulta incluye todas las filas de la segunda tabla de la declaración SQL de la cláusula FROM y sólo las filas de la otra tabla donde el campo de combinación contiene valores comunes de ambas tablas.

Nota: Se puede saber fácilmente qué tabla es la de la izquierda o la de la derecha en una combinación; para ello basta con hacer doble clic en la combinación y consultar el cuadro de diálogo Propiedades de la combinación. También puede cambiar a la vista SQL y examinar la cláusula FROM.

Dado que algunas de las filas en un lado de una combinación externa no tendrán filas correspondientes en la otra tabla, algunos de los campos devueltos en los resultados de la consulta de esa otra tabla estarán vacíos cuando no coinciden las filas.

¿Cómo se usa una combinación externa?

Las combinaciones externas se crean modificando combinaciones internas ya existentes. Si no existe una, se crea y, luego, se cambia a combinación externa.

Convertir una combinación interna en una combinación externa

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

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

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

  3. Haga clic en la opción que desee usar y, a continuación, haga clic en Aceptar.

  4. Access muestra la combinación así como una flecha que va desde el origen de datos donde estarán incluidas todas las filas hasta el origen de datos donde estarán incluidas sólo las filas que cumplan la condición de combinación.

Combinaciones externas ambiguas

Si creaate una consulta que contiene una combinación de la izquierda y una combinación interna, Access no puede determinar qué combinación de operación que debe realizar primero. Dado que los resultados son diferentes dependiendo de si la combinación de la izquierda o la combinación interna se realiza en primer lugar, Access muestra un mensaje de error:

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

Sintaxis SQL para una combinación externa

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

FROM tabla1 [ LEFT | RIGHT ] JOIN tabla2
ON tabla1.campo1operadordecomparación 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.

operadordecomparación

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

Para obtener más información sobre la sintaxis de las combinaciones externas, vea el tema Operaciones LEFT JOIN, RIGHT JOIN.

Principio de página

Mostrar todas las filas de ambas tablas y combinarlas donde existe un valor común

Cuando desee mostrar todas las filas de dos tablas y combinarlas basándose en valores comunes, use una combinación externa completa. Access no admite las combinaciones externas completas, pero se puede conseguir 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, vea la sección Vea también.

Para utilizar 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 la ficha Inicio, en el grupo Vistas, haga clic en Vista y, a continuación, haga clic en Vista SQL.

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

  4. Elimine el punto y coma al final de la cláusula FROM y, a continuación, presione ENTRAR.

  5. Escriba UNION y, a continuación, presione ENTRAR.

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

  6. Presione CTRL+V para pegar el código SQL copiado en el paso 3.

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

  8. Elimine el punto y coma al final de la segunda cláusula FROM y, a continuación, presione ENTRAR.

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

    Por ejemplo, si la cláusula FROM es:

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

    Agregue la siguiente cláusula WHERE:

WHERE Products.ID IS NULL

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

  2. En la ficha 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 Office Access 2007. En una combinación cruzada, cada fila de una tabla se combina con cada fila de otra tabla, generando lo que se denomina un producto cruzado o producto cartesiano. Cada vez que se ejecuta una consulta con tablas que no están explícitamente combinadas, se genera un producto cruzado. Las combinaciones cruzadas suelen ser involuntarias, aunque hay casos en los que pueden resultar útiles.

¿Por qué se usa una combinación cruzada?

Se usa una combinación cruzada cuando se desea comprobar todas las combinaciones posibles de las filas de dos tablas o consultas. Por ejemplo, supongamos que su negocio tiene un año fantástico y está considerando la posibilidad de ofrecer descuentos a sus clientes. Podrá crear una consulta que sume las compras de cada cliente, crear una pequeña tabla con los posibles porcentajes de descuento y combinar las dos en otra consulta que lleve a cabo una combinación cruzada. El resultado será una consulta que muestre un conjunto de descuentos hipotéticos para cada cliente.

¿Cómo se usa una combinación cruzada?

Se genera una combinación cruzada cada vez que se incluyen tablas o consultas en una consulta y no se crea al menos una combinación explícita para cada tabla o consulta. Access combina todas las filas de cada tabla o consulta que no está explícitamente combinada con ninguna otra tabla o consulta con cada dos filas de los resultados. Contemplemos el caso de los descuentos del párrafo anterior. Supongamos que tiene 91 clientes y desea examinar cinco posibles porcentajes de descuento. La combinación cruzada genera 455 filas (el resultado de multiplicar 91 por 5).

Tal y como se puede imaginar, las combinaciones cruzadas involuntarias pueden crear un número considerable de filas en los resultados de consulta. Es más, estos resultados suelen no tener sentido porque, si en realidad la intención no es combinar cada fila con cada dos filas, la mayoría de las filas combinadas que aparecen en los resultados no tendrán ningún sentido. En último lugar, las consultas que usan combinaciones cruzadas involuntarias pueden tardar mucho tiempo en ejecutarse.

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

1. Los campos rodeados de un círculo deben estar combinados.

Producto cruzado no intencionado
Producto cruzado devuelto por la combinación cruzada involuntaria arriba representada.

1. Observe el número considerable de registros.

Resultado de consulta corregido
Resultados después de crearse la combinación correcta.

1. Observe que el número de registros es mucho menor.

Principio de página

Combinar tablas según una desigualdad de valores de campo

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

Si se desea combinar las filas de dos orígenes de datos basándose en los valores de campo que no son iguales, se usa una combinación de desigualdad. Normalmente, las combinaciones de desigualdad se basan en los operadores de comparación mayor que (>), menor que (<), mayor o igual que (>=), o bien, menor o igual que (<=). Las combinaciones de desigualdad que se basan en el operador no es igual a (<>) pueden devolver casi tantas filas como las combinaciones cruzadas, por lo que los resultados pueden ser difíciles de interpretar.

¿Cómo se usa una combinación de desigualdad?

Las combinaciones de desigualdad no se admiten en la vista Diseño. Si desea usarlas, deberá hacerlo en la vista SQL. Sin embargo, se puede crear una combinación en la vista Diseño, cambiar a la vista SQL, buscar el operador de comparación igual a (=) y cambiarlo al operador que desee usar. Después, sólo podrá abrir la consulta en la vista Diseño si cambia primero el operador de comparación al operador igual a (=) en la vista SQL.

Principio de página

Eliminar una combinación

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

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

  2. Presione SUPR.

O bien,

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

Principio de página

Nota: Declinación de responsabilidades de traducción automática: Este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.

Vea también

Agregar registros a una tabla mediante una consulta de datos anexados

Combinar los resultados de varias consultas de selección mediante una consulta de unión

Crear una consulta basada en varias tablas

Crear, editar o eliminar una relación

¿Le ha sido útil esta información?

De acuerdo. ¿Algún comentario más?

¿Cómo podemos mejorarlo?

¡Gracias por sus comentarios!

×