Crear autocombinaciones manualmente (Visual Database Tools)
Puede combinar una tabla consigo misma aunque no tenga una relación reflexiva en la base de datos. Por ejemplo, puede utilizar una autocombinación para buscar pares de autores que residan en la misma ciudad.
Al igual que el resto de las combinaciones, una autocombinación requiere al menos dos tablas. La diferencia reside en que, en lugar de agregar una segunda tabla a la consulta, se agrega una segunda instancia de la misma tabla. De ese modo, puede comparar una columna de la primera instancia de la tabla con la misma columna de la segunda instancia y, por tanto, comparar los valores de una columna entre sí. El Diseñador de consultas y vistas asigna un alias a la segunda instancia de la tabla.
Por ejemplo, si se crea una autocombinación para buscar todos los pares de autores de Berkeley, se compara la columna city de la primera instancia de la tabla con la columna city de la segunda instancia. La consulta resultante podría tener el siguiente aspecto:
SELECT
authors.au_fname,
authors.au_lname,
authors1.au_fname AS Expr2,
authors1.au_lname AS Expr3
FROM
authors
INNER JOIN
authors authors1
ON authors.city
= authors1.city
WHERE
authors.city = 'Berkeley'
La creación de una autocombinación requiere a menudo varias condiciones de combinación. Para comprender el motivo de este requisito, considere el resultado de la consulta anterior:
Cheryl Carson Cheryl Carson
Abraham Bennet Abraham Bennet
Cheryl Carson Abraham Bennet
Abraham Bennet Cheryl Carson
La primera fila es inservible; indica que Cheryl Carson vive en la misma ciudad que Cheryl Carson. La segunda fila también es inservible. Para eliminar estos datos inútiles, agregue otra condición que conserve solo las filas de resultados en las que los dos nombres de autores correspondan a autores diferentes. La consulta resultante podría tener el siguiente aspecto:
SELECT
authors.au_fname,
authors.au_lname,
authors1.au_fname AS Expr2,
authors1.au_lname AS Expr3
FROM
authors
INNER JOIN
authors authors1
ON authors.city
= authors1.city
AND authors.au_id
<> authors1.au_id
WHERE
authors.city = 'Berkeley'
El conjunto de resultados mejora:
Cheryl Carson Abraham Bennet
Abraham Bennet Cheryl Carson
Pero las dos filas de resultados son redundantes. En la primera se indica que Carson vive en la misma ciudad que Bennet y en la segunda, que Bennet vive en la misma ciudad que Carson. Para eliminar esta redundancia, puede cambiar la segunda condición de combinación de "no es igual a" a "menor que". La consulta resultante podría tener el siguiente aspecto:
SELECT
authors.au_fname,
authors.au_lname,
authors1.au_fname AS Expr2,
authors1.au_lname AS Expr3
FROM
authors
INNER JOIN
authors authors1
ON authors.city
= authors1.city
AND authors.au_id
< authors1.au_id
WHERE
authors.city = 'Berkeley'
Y el conjunto de resultados tendría el siguiente aspecto:
Cheryl Carson Abraham Bennet
Para crear una autocombinación manualmente
Agregue al panel Diagrama la tabla o el objeto con valores de tabla con el que desea trabajar.
Vuelva a agregar la misma tabla, de forma que en el panel Diagrama muestre la misma tabla u objeto con valores de tabla dos veces.
El Diseñador de consultas y vistas asigna un alias a la segunda instancia mediante la adición de un número consecutivo al nombre de tabla. Asimismo, el Diseñador de consultas y vistas crea una línea de combinación entre las dos repeticiones de la tabla u objeto con valores de tabla en el panel Diagrama.
Haga clic con el botón secundario y elija Propiedades en el menú contextual.
En la ventana Propiedades, haga clic en Condición y tipo de combinación y después en los puntos suspensivos (...) que aparecen a la derecha de la propiedad.
En el cuadro de diálogo Combinar, cambie el operador de comparación entre las claves principales según corresponda. Por ejemplo, puede cambiar el operador a menor que (<).
Cree la otra condición de combinación (por ejemplo, authors.zip = authors1.zip) arrastrando el nombre de la columna de combinación principal de la primera aparición de la tabla u objeto con valores de tabla y colocándolo en la columna correspondiente de la segunda aparición.
Especifique otras opciones para la consulta, como las columnas de resultados, las condiciones de búsqueda y el criterio de ordenación.
Vea también
Tasks
Crear autocombinaciones de forma automática (Visual Database Tools)
Otros recursos
Realizar consultas con combinaciones (Visual Database Tools)