..


Link-uri sponsorizate

Utilizarea UNION pentru a combina rezultatele din două tabele

Articol scris de Max Bossi

Limba SQL ne oferă o modalitate destul de simplă de a combina, în cadrul instrucţiunea SELECT aceeaşi, rezultatele a două tabele diferite.

Pentru a realiza acest lucru, este timpul să ne folosim all'opertore Uniunii, care va fi, în fapt, uniunea a rezultatelor obţinute prin interogarea cele două tabele.

Reţineţi că, pentru a fi utilizate în mod corespunzător, este momentul în care operatorul UNION:

  • ca tabelele să fie întrebă pe acelaşi număr de coloane;
  • solicită ca coloanele au acelaşi nume;
  • că coloanele necesare în cele două tabele au tipuri de date consistente;
Iată un exemplu: sa spunem de a trebui să funcţioneze pe o bază de date de agenţie de turism ipotetice şi să presupunem că PB noastră conţine doar două tabele:
  • hotel_italia
    • nume
    • Stele
    • oraş
    • naţiune
  • hotel_europa
    • nume
    • Stele
    • oraş
    • naţiune
Acum, să presupunem că un client vrea sa stim fie oferte de hoteluri in Italia si in Europa:





 SELECT nume, stele, oraşul, ţara







 DIN hotel_italia







 UNIUNEA







 SELECT nume, stele, oraşul, ţara







 DIN hotel_europa



Cu această interogare vom obţine o listă completă de toate hotelurile din cele două tabele:

nume Stele oraş naţiune
Hotel Cavour 4 Roma RO
Hotel Miramare 2 Catolic RO
Hotel Manzoni 2 Milano RO
Hotel Espana 3 Madrid ES
Hilton 5 Londra Regatul Unit
Hotel am Schlossgarten 4 Stuttgart DE

Notă: vă rugăm să notaţi că Uniunea nu arată nici o înregistrări dublură (implicit funcţionează ca şi cum ar fi un SELECT DISTINCT ), şi, dacă doriţi orice înregistrări dublură arată, de asemenea, (cred înapoi la exemplul nostru, la un hotel în această atât în tabelul în care hotel_europa hotel_italia) vor trebui să folosească UNION ALL.

Sortare şi a limita rezultatele care decurg din UNIUNII

Să presupunem că rezultatele obţinute cu ajutorul UNIUNII şi mulţi ca ei să fie limitată la numărul specificat. Cum? Iată o soluţie:

 



 SELECT * FROM







 (Nume SELECT, stele, oraşul, ţara DIN hotel_italia







 UNIUNEA







 SELECT nume, stele, oraşul, ţara DIN hotel_europa)







 AS Hotel







 ORDER BY DESC LIMIT 10 stele

 
În esenţă tratăm rezultatele care decurg din unirea a două sau mai multe tabele ca şi cum acestea au fost rezultatul unui singur tabel, făcând astfel încât să putem folosi sortarea standard şi limita.

În aceeaşi categorie ...
E-Learning
MS Access (Avansat) MS Access (Avansat)
Aflaţi cum să creaţi şi să gestionaţi baze de date rapid şi uşor. Incepand de la 29 €.
MySQL (Curs) MySQL (Curs)
De gestionare a bazei de date open-source. De la 39 €.
SQL si baze de date (Curs) SQL si baze de date (Curs)
Crearea şi gestionarea bazelor de date relaţionale. De la 39 €.
Link-uri sponsorizate