..


Enlaces patrocinados

Utilizar UNION para combinar los resultados de dos tablas

Artículo escrito por Max Bossi

El lenguaje SQL nos ofrece una manera bastante sencilla de combinar, dentro de la misma declaración SELECT, los resultados de dos tablas diferentes.

Para lograr esto, es hora de usar all'opertore Unión que, de hecho, la unión de los resultados obtenidos mediante la consulta de las dos tablas.

Tenga en cuenta que para poder ser utilizado correctamente, es hora de que el operador UNION:

  • que las tablas se consultan en el mismo número de columnas;
  • pide que las columnas tienen el mismo nombre;
  • que las columnas necesarias en las dos tablas tienen tipos de datos coherentes;
He aquí un ejemplo: digamos que de tener que operar sobre una base de datos de la agencia de viajes hipotéticos y asumir que nuestra base de datos contiene sólo dos tablas:
  • hotel_italia
    • nombre
    • estrellas
    • ciudad
    • nación
  • hotel_europa
    • nombre
    • estrellas
    • ciudad
    • nación
Ahora bien, supongamos que un cliente quiere que sepamos bien las ofertas de hoteles en Italia y en Europa:





 SELECT nombre, las estrellas, ciudad, país







 DE hotel_italia







 UNIÓN







 SELECT nombre, las estrellas, ciudad, país







 DE hotel_europa



Con esta consulta se obtiene una lista completa de todos los hoteles en las dos tablas:

nombre estrellas ciudad nación
Hotel Cavour 4 Roma ES
Hotel Miramare 2 Católico ES
Hotel Manzoni 2 Milán ES
Hotel Espana 3 Madrid ES
Hilton 5 Londres Reino Unido
Hotel am Schlossgarten 4 Stuttgart DE

Nota: Tenga en cuenta que la Unión no muestra los registros duplicados (por defecto, funciona como si se tratara de un SELECT DISTINCT ), y si quieres todos los registros duplicados también muestran (piense de nuevo a nuestro ejemplo, en un hotel de esta tanto en la mesa en que hotel_europa hotel_italia) tendrá que usar UNION ALL.

Ordenar y limitar los resultados derivados de UNION

Supongamos que los resultados del uso de UNION y muchos quieren que se limite a un número específico. ¿Cómo? Aquí hay una solución:

 



 SELECT * FROM







 (SELECT nombre, las estrellas, ciudad, país DE hotel_italia







 UNIÓN







 SELECT nombre, las estrellas, ciudad, país DE hotel_europa)







 AS Hotel







 ORDER BY DESC límite de 10 estrellas

 
Esencialmente en que tratamos a los resultados que surgen de la unión de dos o más tablas como si fueran el resultado de una sola tabla, de esta manera podemos utilizar la clasificación estándar y límite.

En la misma categoría ...
E-Learning
MS Access (Avanzado) MS Access (Avanzado)
Aprenda a crear y gestionar bases de datos rápida y fácilmente. A partir de 29 €.
MySQL (Curso) MySQL (Curso)
Gestión de base de datos de código abierto. A partir de 39 €.
SQL y bases de datos (Avanzado) SQL y bases de datos (Curso)
Crear y gestionar bases de datos relacionales. A partir de 39 €.
Enlaces patrocinados