Combinar tablas y consultas

Cuando se incluyen varias tablas en una consulta, se usan combinaciones que ayudan a obtener los resultados deseados. Una combinación ayuda a que la consulta devuelva únicamente los registros deseados de cada tabla, basándose en cómo esas tablas están relacionadas con otras tablas en la consulta. En este artículo se proporciona información conceptual sobre las combinaciones, se abordan los distintos tipos de combinación y se muestra cómo usarlas.

En este artículo


Introducción

Las bases de datos relacionales se componen, en el nivel más básico, de tablas que guardan relaciones lógicas entre ellas. Las relaciones se usan para conectar las tablas en los campos que tienen en común. Una relación viene representada en una consulta por medio de 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.

Volver al principio Volver al principio

Combinaciones internas

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.

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

Se usa una combinación interna cuando se desea que se devuelvan únicamente las filas de ambas tablas de la combinación que coinciden en el campo combinado.

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

En la mayoría de los casos, no hay que hacer nada para poder usar una combinación interna. Si se han creado relaciones entre las tablas en la ventana Relaciones (ventana Relaciones: ficha de objeto en la que se pueden ver, crear y modificar las relaciones entre tablas y consultas.), Access crea automáticamente las combinaciones internas cuando se agregan tablas relacionadas en la vista Diseño (vista Diseño: vista que muestra el diseño de los siguientes objetos de base de datos: tablas, consultas, formularios, informes y macros. En la vista Diseño, puede crear objetos de base de datos nuevos y modificar el diseño de otros existentes.) de la consulta. Si se aplica la integridad referencial (integridad referencial: reglas que se siguen para preservar las relaciones definidas entre las tablas cuando se agregan, actualizan o eliminan registros.), Access muestra asimismo "1" sobre la línea de combinación para indicar la tabla del lado "uno" de una relación uno a varios (relación uno a varios: asociación entre dos tablas en la que el valor de clave principal de cada registro de la tabla principal se corresponde con el valor del campo o los campos coincidentes de varios registros de la tabla relacionada.) así como el 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 (clave principal: uno o más campos (columnas) cuyos valores identifican de manera exclusiva cada registro de una tabla. Una clave principal no puede permitir valores Nulo y debe tener siempre un índice exclusivo. Una clave principal se utiliza para relacionar una tabla con claves externas de otras tablas.). 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.

MostrarSintaxis 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 (tipo de datos: característica de un campo que determina el tipo de datos que puede albergar. Los tipos de datos son: Booleano, Entero, Largo, Moneda, Simple, Doble, Fecha, Cadena y Variant (predeterminado).) 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.


Volver al principio Volver al principio

Combinaciones externas

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.

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

Se usa una combinación externa cuando se desea que los resultados incluyan todas las filas de una de las tablas de la combinación y se desea que la consulta devuelva sólo las filas de la otra tabla que coinciden con la primera tabla del campo de combinación.

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

Las combinaciones externas se crean modificando las combinaciones internas.

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.

  1. 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.
  2. Haga clic en la opción que desee usar y, a continuación, haga clic en Aceptar.
  3. 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.

MostrarSintaxis 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 (tipo de datos: característica de un campo que determina el tipo de datos que puede albergar. Los tipos de datos son: Booleano, Entero, Largo, Moneda, Simple, Doble, Fecha, Cadena y Variant (predeterminado).) 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.


Volver al principio Volver al principio

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.
Llamada 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.
Llamada 1 Observe el número considerable de registros.

Resultado de consulta corregido

Resultados después de crearse la combinación correcta.
Llamada 1 Observe que el número de registros es mucho menor.

Volver al principio Volver al principio

Combinaciones de desigualdad

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.

¿Por qué se usa una combinación 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.

Volver al principio Volver al principio

Quitar una combinación

Si crea una combinación por equivocación, por ejemplo, entre dos campos con tipos de datos distintos, podrá eliminarla. Para eliminar una combinación:

  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.

Volver al principio Volver al principio

 
 
Corresponde a:
Access 2007