..


Enllaços patrocinats

Utilitza UNIÓ per combinar els resultats de dues taules

Article escrit per Max Bossi

El llenguatge SQL ens proporciona una manera bastant senzilla de combinar, dins de la mateixa declaració SELECT, els resultats de dues taules diferents.

Per aconseguir això, és hora d'usar all'opertore Unió que, de fet, la unió dels resultats obtinguts mitjançant la consulta de les dues taules.

Tingueu en compte que per tal de ser utilitzats correctament, és hora que l'operador UNION:

  • que les taules es consulten en el mateix nombre de columnes;
  • demana que les columnes tenen el mateix nom;
  • que les columnes necessàries en les dues taules tenen tipus de dades consistents;
Vegem un exemple: diguem que de tenir d'operar sobre una base de dades de l'agència de viatges hipotètics i assumir que la nostra base de dades conté només dues taules:
  • hotel_italia
    • nom
    • estrelles
    • ciutat
    • nació
  • hotel_europa
    • nom
    • estrelles
    • ciutat
    • nació
Ara bé, suposem que un client vol que sapiguem bé les ofertes d'hotels a Itàlia ia Europa:





 SELECT nom, els estels, ciutat, país







 D'hotel_italia







 UNIÓ







 SELECT nom, els estels, ciutat, país







 D'hotel_europa



Amb aquesta consulta s'obté un llistat complet d'hotels en les dues taules:

nom estrelles ciutat nació
Hotel Cavour 4 Roma ÉS
Hotel Miramare 2 Catòlic ÉS
Hotel Manzoni 2 Milà ÉS
Hotel Espanya 3 Madrid ÉS
Hilton 5 Londres Regne Unit
Hotel am Schlossgarten 4 Stuttgart D'

Nota: Tingueu en compte que l'operador UNION no mostra els registres duplicats (per defecte funciona com si es tractés d'un SELECT DISTINCT ), i si vols mostrar els registres duplicats també (pensa de nou al nostre exemple, en un hotel d'aquesta tant a la taula en què hotel_europa hotel_italia) heu d'utilitzar UNION ALL.

Ordenar i limitar els resultats derivats de UNIÓ

Suposem que els resultats de la utilització de la Unió i molts volen que es limiti a determinat nombre. Com? Aquí hi ha una solució:

 



 SELECT * FROM







 (SELECT nom, estrelles, ciutat, país DE hotel_italia







 UNIÓ







 SELECT nom, estrelles, ciutat, país hotel_europa DE)







 AS Hotel







 ORDER BY DESC límit de 10 estrelles

 
En essència, en què tractem els resultats que sorgeixen de la unió de dues o més taules com si fossin el resultat d'una sola taula, en fer-ho, pot utilitzar la classificació i el límit del normal.

A la mateixa categoria ...
E-Learning
MS Access (Curs) MS Access (Curs)
Aprendre a crear i gestionar bases de dades fàcil i ràpidament. A partir de 29 €.
MySQL (Curs) MySQL (Curs)
Gestió de base de dades de codi obert. A partir de 39 €.
SQL i bases de dades (curs) SQL i bases de dades (curs)
Creació i gestió de bases de dades relacionals. A partir de 39 €.
Enllaços patrocinats