..


Gesponsorde links

Met behulp van UNION om de resultaten te combineren van twee tabellen

Artikel geschreven door Max Bossi

De SQL-taal biedt ons een vrij eenvoudige manier om te combineren binnen dezelfde SELECT-instructie, de resultaten van twee verschillende tabellen.

Om dit te bereiken, is het tijd om UNION all'opertore te gebruiken die, in feite, de vereniging van de resultaten van query's voor de twee tabellen.

Merk op dat om goed te worden gebruikt, is het tijd dat de UNION-operator:

  • dat de tabellen worden opgevraagd op hetzelfde aantal kolommen;
  • vraagt ​​dat de kolommen dezelfde naam hebben;
  • dat de vereiste kolommen in de twee tabellen hebben consistente data types;
Hier is een voorbeeld: laten we zeggen van het moeten werken met een database van hypothetische reisbureau en dat onze DB slechts twee tabellen bevat aannemen:
  • hotel_italia
    • naam
    • sterren
    • stad
    • natie
  • hotel_europa
    • naam
    • sterren
    • stad
    • natie
Stel nu dat een klant wil dat wij weten of de aanbiedingen van hotels in Italië en in Europa:





 SELECT naam, sterren, stad, land







 VAN hotel_italia







 UNION







 SELECT naam, sterren, stad, land







 VAN hotel_europa



Met deze vraag krijgen we een compleet overzicht van alle hotels in de twee tabellen:

naam sterren stad natie
Hotel Cavour 4 Rome EN
Hotel Miramare 2 Katholiek EN
Hotel Manzoni 2 Milaan EN
Hotel Espana 3 Madrid ES
Hilton 5 Londen Groot-Brittannië
Hotel am Schlossgarten 4 Stuttgart DE

Opmerking: let op dat de Unie geen dubbele records (standaard opereert als ware het een show SELECT DISTINCT ), en als u wilt dat er dubbele records ook zien (denk maar terug naar ons voorbeeld, in een hotel in deze zowel in de tabel in die hotel_italia hotel_europa) moeten ALLE gebruik van UNION.

Sorteren en beperken de resultaten die voortvloeien uit UNION

Stel dat de resultaten van het gebruik UNIE en velen willen dat ze worden beperkt tot bepaalde nummer. Hoe? Hier is een oplossing:

 



 SELECT * FROM







 (SELECT naam, sterren, stad, land FROM hotel_italia







 UNION







 SELECT naam, sterren, stad, land FROM hotel_europa)







 AS Hotel







 ORDER BY DESC LIMIT 10 sterren

 
Wezen behandelen we de resultaten die voortvloeien uit de vereniging van twee of meer tabellen als waren zij het resultaat van een enkele tafel, door dit te doen zodat we kunnen standaard sorteren en beperken het gebruik.

In dezelfde categorie ...
E-Learning
MS Access (Advanced) MS Access (Advanced)
Leer hoe het maken en beheren databases snel en gemakkelijk. Vanaf 29 €.
MySQL (Cursus) MySQL (Cursus)
Beheer van de open source database. Van 39 €.
SQL en Database (Cursus) SQL en Database (Cursus)
Maken en beheren van relationele databases. Van 39 €.
Gesponsorde links