Usar una consulta de unión para combinar varias consultas en un mismo resultado

Usar una consulta de unión para combinar varias consultas en un mismo resultado

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í.

Supongamos que la base de datos de Access tiene dos tablas no relacionadas, una que almacena datos de clientes y otra que almacena datos sobre proveedores, y que ambas tablas tienen un campo de información de contacto. Le gustaría ver la información de contacto de ambas tablas en una vista. Para ello, primero cree una consulta de selección para cada tabla para recuperar la información de contacto y, después, combine los resultados mediante la creación de una consulta de unión.

Nota: El contenido de este artículo está pensado para usarse con bases de datos de escritorio de Access. No puede crear o usar una consulta de unión en aplicaciones web ni bases de datos web de Access.

¿Necesita un repaso sobre cómo crear consultas de selección básicas? Consulte Crear una consulta de selección simple.

En primer lugar, un par de cosas que saber sobre la creación de una consulta de unión:

  • Las consultas de selección que combine en una consulta de unión deben tener el mismo número de campos de salida, en el mismo orden y con el mismo tipo de datos o con tipos de datos compatibles. Al ejecutar la consulta de unión, los datos de cada conjunto de campos correspondientes se combinan en un único campo de salida de modo que el resultado de la consulta tenga el mismo número de campos que cada una de las instrucciones SELECT.

  • Una consulta de unión es específica de SQL y, por lo tanto, debe escribirse directamente en SQL. Cambie a Vista SQL para escribir consultas específicas de SQL, incluidas las consultas de unión.

Paso 1: Crear las consultas de selección

Nota: Aunque una consulta puede abarcar varias tablas o consultas, en este procedimiento se da por hecho que cada una de las consultas de selección incluye datos de una sola tabla.

  1. En el grupo Consultas de la pestaña Crear, haga clic en Diseño de la consulta.

  2. En el cuadro de diálogo Mostrar tabla, haga doble clic en la tabla con los campos que quiera incluir. La tabla se agrega a la ventana de diseño de la consulta.

  3. Cierre el cuadro de diálogo Mostrar tabla.

  4. En la ventana de diseño de la consulta, haga doble clic en cada uno de los campos que quiera incluir.
    Al seleccionar campos, procure agregar el mismo número de campos y en el mismo orden que a las otras consultas de selección. Preste especial atención a los tipos de datos de los campos y asegúrese de que son compatibles con los tipos de datos de los campos en la misma posición de las otras consultas que está combinando. Por ejemplo, si la primera consulta de selección tiene cinco campos y el primer campo contiene datos de fecha y hora, asegúrese de que las demás consultas de selección que está combinando también tienen cinco campos y que el primero contiene datos de fecha y hora, y así sucesivamente.

  5. Opcionalmente, agregue criterios a los campos escribiendo las expresiones correspondientes en la fila Criterios de la cuadrícula.

  6. Cuando haya acabado de agregar campos y criterios de campo, debe ejecutar la consulta de selección y revisar su resultado. En la pestaña Diseño, en el grupo Resultados, haga clic en Ejecutar.

  7. Cambie la consulta a la vista Diseño.

  8. Guarde la consulta de selección y déjela abierta.

  9. Repita este procedimiento para cada una de las consultas de selección que desee combinar.

Para más información sobre el uso de criterios en una consulta, consulte Aplicar criterios a una consulta.

Paso 2: Combinar las consultas de selección

En este paso, crea la consulta de unión mediante instrucciones SQL. (Para más información, consulte la sección Sintaxis de SQL, a continuación.)

  1. En el grupo Consultas de la pestaña Crear, haga clic en Diseño de la consulta.

  2. Cierre el cuadro de diálogo Mostrar tabla.

  3. En la pestaña Diseño, en el grupo Consulta, haga clic en Unión.

Access oculta la ventana de diseño de consultas y muestra la pestaña de objeto de la vista SQL. En este punto, la pestaña de objeto de la vista SQL está vacía.

  1. Haga clic en la pestaña de la primera consulta de selección que desee combinar en la consulta de unión.

  2. En la pestaña Inicio haga clic en Vista > Vista SQL.

  3. Copie la instrucción SQL para la consulta de selección. Haga clic en la pestaña de la consulta de unión que haya empezado a crear en el paso 1.

  4. Pegue la instrucción SQL de la consulta de selección en la pestaña de objeto de la vista SQL de la consulta de unión.

  5. Elimine el signo de punto y coma (;) que se encuentra al final de la instrucción SQL de la consulta de selección.

  6. Presione ENTRAR para mover el cursor una línea hacia abajo y, después, escriba UNION en la nueva línea.

  7. Haga clic en la pestaña de la siguiente consulta de selección que desee combinar en la consulta de unión.

  8. Repita los pasos del 5 al 10 de este procedimiento hasta que haya copiado y pegado todas las instrucciones SQL de las consultas de selección en la ventana de la vista SQL de la consulta de unión. No elimine el signo de punto y coma ni escriba nada después de la instrucción SQL de la última consulta de selección.

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

Los resultados de la consulta de unión aparecen en la Vista de hoja de datos.

Principio de página

Sugerencias para el uso de consultas de unión

  • Para poder distinguir qué filas provienen de qué tabla, agregue una cadena de texto como un campo a cada una de las instrucciones SELECT.

    Por ejemplo, si una instrucción de selección está recuperando los campos de una tabla denominada Productos y otra instrucción de selección está recuperando los campos de una tabla denominada Servicios, agregue la cadena "Producto" como un campo al final de la primera instrucción y "Servicio" al final de la segunda instrucción. También puede asignar un alias de campo (por ejemplo, "tipo") a las cadenas utilizando la palabra clave AS, como se muestra en el siguiente ejemplo:

    SELECT field1, field2, ... "Product" AS type

    SELECT field1, field2, ... "Service" AS type

    Los resultados de la consulta incluirían un campo denominado "type", que indica si la fila proviene de la tabla de productos o de la tabla de servicios.

  • Cada palabra clave UNION combina las instrucciones SELECT que figuran inmediatamente antes y después de la misma. Si se utiliza la palabra clave ALL con algunas de las palabras clave UNION en la consulta, los resultados incluirán las filas duplicadas de los pares de instrucciones SELECT combinadas mediante UNION ALL pero no incluirán las filas duplicadas de las instrucciones SELECT combinadas mediante UNION sin la palabra clave ALL.

  • El número, los tipos de datos y el orden de los campos en las consultas de selección deben corresponderse. Para ello, puede usar expresiones, como cálculos o subconsultas.

    Por ejemplo, puede hacer coincidir un campo de año de dos caracteres con un campo de año de cuatro caracteres mediante la función Der para extraer los dos últimos dígitos del año de cuatro caracteres.

Usar los resultados de una consulta de unión para crear una tabla

En primer lugar, use la consulta de unión como entrada para una nueva consulta de selección y, después, use esa consulta de selección como base de una consulta de creación de tabla, como se muestra en los siguientes pasos:

  1. Cree y guarde la consulta de unión.

  2. En el grupo Consultas de la pestaña Crear, haga clic en Diseño de la consulta.

  3. En el cuadro de diálogo Mostrar tabla, haga clic en la pestaña Consultas.

  4. Haga doble clic en la consulta de unión y, a continuación, cierre el cuadro de diálogo Mostrar tabla.

    Nota: Si ve una advertencia de seguridad en la barra de mensajes, puede que las consultas de acción estén deshabilitadas. Para habilitar las consultas de acción, haga clic en Habilitar contenido en la barra de mensajes.

  5. En la cuadrícula de diseño de consultas, en la pestaña del objeto de la consulta de unión, haga doble clic en el asterisco (*) para usar todos los campos de la consulta de unión para crear una tabla nueva.

  6. En el grupo Tipo de consulta de la pestaña Diseño, haga clic en Crear tabla.

  7. En el cuadro de diálogo Crear tabla, escriba el nombre que desee asignar a la nueva tabla.

  8. Opcionalmente, especifique otra base de datos en la que desee crear la tabla.

  9. Haga clic en Aceptar.

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

Usar una consulta de unión para realizar una combinación externa completa

Puede utilizar una consulta de unión para realizar una combinación externa completa. Una combinación externa completa no limita las filas que se devuelven de cualquiera de las tablas combinadas sino que combina las filas basándose en los valores del campo de combinación.

  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 pestaña 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 después presione ENTRAR.

  5. Escriba UNION y 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 que copió 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 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 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]

    Puede agregar 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 el grupo Resultados de la pestaña Diseño, haga clic en Ejecutar.
    Los resultados de la consulta de unión aparecen en la Vista de hoja de datos.

Para obtener más información, vea Combinar tablas y consultas.

Principio de página

Requisitos y sintaxis SQL de una consulta de unión

Algunos requisitos de las consultas de unión

  • Las consultas de selección que combine en una consulta de unión deben tener el mismo número de campos de salida, en el mismo orden y con el mismo tipo de datos o con tipos de datos compatibles. Al ejecutar la consulta de unión, los datos de cada conjunto de campos correspondientes se combinan en un único campo de salida de modo que el resultado de la consulta tenga el mismo número de campos que cada una de las instrucciones SELECT.

    Nota: Para las consultas de unión, los tipos de datos Texto y Número son compatibles.

  • Una consulta de unión es específica de SQL y, por lo tanto, debe escribirse directamente en SQL. Cambie a Vista SQL para escribir consultas específicas de SQL, incluidas las consultas de unión.

Sintaxis SQL de una consulta de unión

En una consulta de unión, cada consulta de selección (también denominada instrucción SELECT) tiene las siguientes cláusulas:

Cláusula

Contiene una lista de...

SELECT

campos que contienen los datos que desea recuperar.

FROM

tablas que contienen esos campos.

WHERE opcional

criterios para esos campos.

Las instrucciones SELECT se combinan mediante la palabra clave UNION.

Veamos ahora la sintaxis SQL básica de una consulta de unión:

SELECT field_1[, field_2,…]
FROM table_1[, table_2,…]
UNION [ALL]
SELECT field_a[, field_b,...]
FROM table_a[, table_b,…];

Un ejemplo sería una base de datos que tiene una tabla denominada Products (Productos) y otra denominada Services (Servicios), y ambas tienen campos que contienen el nombre del producto o servicio, el precio, la garantía y si el producto o servicio se ofrece de forma exclusiva. Si bien en la tabla Products se almacena información de garantía (expresada en inglés como warranty) y en la tabla Services se almacena información de garantía (expresada en inglés como guarantee), la información básica es la misma (si un determinado producto o servicio viene acompañado de una garantía de calidad). Puede usar una consulta de unión, como la que figura a continuación, para combinar los cuatro campos de las dos tablas:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services;

Vamos a examinar el ejemplo anterior de sintaxis, línea por línea:

Sintaxis

Explicación

Información adicional

SELECT name, price, warranty_available, exclusive_offer

Primera cláusula SELECT

SELECT va seguida por una lista de identificadores que indican los campos desde los que desea recuperar datos.

Una cláusula SELECT debe incluir un campo como mínimo.

Esta cláusula SELECT enumera los identificadores de campo name, price, warranty_available y exclusive_offer.

FROM Products

Primera cláusula FROM

Una cláusula FROM sigue a una cláusula SELECT y juntas forman una instrucción SELECT básica.

FROM va seguida por una lista de identificadores que indican las tablas que contienen los campos enumerados en la cláusula SELECT.

Una cláusula FROM debe incluir una tabla como mínimo.

Esta cláusula FROM incluye el identificador de tabla Products.

UNION ALL

La palabra clave UNION y la palabra clave opcional ALL

Los resultados de la instrucción SELECT que precede a UNION se combinan con los resultados de la instrucción SELECT que sigue a UNION.

Cuando se usa la palabra clave ALL, las filas duplicadas no se quitan de los resultados de la consulta de unión.

Al usar la palabra clave ALL, la consulta se puede ejecutar más rápido, porque Access no tiene que comprobar si hay filas duplicadas.

Utilice la palabra clave ALL si se cumple alguna de las condiciones siguientes:

  • Está seguro de que las consultas de selección no producen filas duplicadas.

  • No le importa que los resultados tengan filas duplicadas.

  • Desea ver las filas duplicadas.

SELECT name, price, guarantee_available, exclusive_offer

Segunda cláusula SELECT

Algunas reglas:

  • La segunda cláusula SELECT debe tener el mismo número de campos que la primera cláusula SELECT.

  • Los campos que comparten datos comunes deben aparecen en el mismo orden en la cláusula.

  • Los campos que comparten datos comunes deben tener los mismos tipos de datos o tipos de datos compatibles.

Nota: Los nombres de los campos en el resultado de una consulta de unión provienen de la primera cláusula SELECT. Por lo tanto, en nuestro ejemplo, los datos del campo "warranty_available" y del campo "guarantee_available" se denominan "warranty_available" en el resultado de la consulta.

FROM Services

Segunda cláusula FROM

No hay restricciones en las tablas de las cláusulas FROM de una consulta de unión. Puede crear una consulta de unión que use las mismas tablas en cada cláusula FROM. Puede tener diferentes números de tablas en las cláusulas FROM. En nuestro ejemplo, cada cláusula FROM tiene solo una tabla.

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.

Ampliar sus conocimientos
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.

×