..


Sponsorerede links

Brug UNION til at kombinere resultaterne fra to tabeller

Artikel skrevet af Max Bossi

SQL-sproget giver os en forholdsvis enkel måde at kombinere, inden for samme SELECT-sætning, resultaterne af to forskellige borde.

For at opnå dette, er det tid til at bruge UNION all'opertore der vil i virkeligheden. Foreningen af de resultater, der opnås ved at forespørge de to tabeller

Bemærk, at for at blive anvendt korrekt, er det på tide, at operatoren UNION:

  • at tabeller er spørges om det samme antal kolonner;
  • anmoder om, at søjlerne har samme navn;
  • at de nødvendige kolonner i de to tabeller er konsistente data typer;
Her er et eksempel: Lad os sige at skulle operere på en database over hypotetisk rejsebureau og antager, at vores DB kun indeholder to tabeller:
  • hotel_italia
    • navn
    • stjerner
    • by
    • nation
  • hotel_europa
    • navn
    • stjerner
    • by
    • nation
Antag nu, at en kunde vil have os til at vide, enten de tilbud om hoteller i Italien og i Europa:





 SELECT navn, stjerner, by, land







 FRA hotel_italia







 UNION







 SELECT navn, stjerner, by, land







 FRA hotel_europa



Med denne forespørgsel får vi en komplet liste med alle hoteller i de to tabeller:

navn stjerner by nation
Hotel Cavour 4 Rom DA
Hotel Miramare 2 Katolsk DA
Hotel Manzoni 2 Milan DA
Hotel Espana 3 Madrid ES
Hilton 5 London Storbritannien
Hotel am Schlossgarten 4 Stuttgart DE

Bemærk: Vær opmærksom på, at EU ikke viser nogen dubletter (som standard opererer som om det var en SELECT DISTINCT ), og hvis du ønsker nogen dublerede poster også vise (tænk tilbage til vores eksempel, på et hotel i denne både i tabellen i dette hotel_italia hotel_europa) vil bruge UNION ALL.

Sortere og begrænse de resultater, der opstår fra Union

Antag, at resultaterne af at bruge UNION, og mange vil have dem til at være begrænset til bestemt antal. Hvordan? Her er en løsning:

 



 SELECT * FROM







 (SELECT navn, stjerner, by, land FRA hotel_italia







 UNION







 SELECT navn, stjerner, by, land FRA hotel_europa)







 AS Hotel







 ORDER BY DESC LIMIT 10 stjerner

 
Grundlæggende vi behandler de resultater, som følge af foreningen af ​​to eller flere tabeller, som om de var resultatet af en enkelt tabel, ved at gøre så vi kan bruge standard sortering og begrænse.

I den samme kategori ...
E-Learning
MS Access (Avanceret) MS Access (Avanceret)
Lær at oprette og administrere databaser hurtigt og nemt. Fra 29 €.
MySQL (Kursus) MySQL (Kursus)
Forvaltning af open source-database. Fra 39 €.
SQL-og Database (Kursus) SQL-og Database (Kursus)
Oprette og administrere relationelle databaser. Fra 39 €.
Sponsorerede links