Rezumat: în acest tutorial, veți învăța cum să utilizați MySQL UNION
operator pentru a combina două sau mai multe seturi de rezultate de la mai multe SELECT
declarații într-un singur set de rezultate.
MySQL UNION operator
MySQL UNION
operatorul vă permite să combinați două sau mai multe seturi de rezultate de interogări într-un singur set de rezultate., Următoarea diagramă ilustrează sintaxa UNION
operator:
Pentru a combina rezultatul set de două sau mai multe interogări folosind UNION
operator, acestea sunt regulile de bază care trebuie urmați:
- în Primul rând, numărul și ordine ale coloanelor care apar în toate
SELECT
declarații trebuie să fie aceeași. - în al doilea rând, tipurile de date ale coloanelor trebuie să fie aceleași sau compatibile.,
în mod implicit, UNION
operator elimină duplicat rânduri, chiar dacă nu specificați DISTINCT
operator în mod explicit.,
Să vedem următoarele exemple de tabele: t1
și t2
:
următoarea declarație combină seturile de rezultate returnate de la t1
și t2
tabele:
Code language: SQL (Structured Query Language) (sql)
rezultatul final setul contine valorile distincte din diferite seturi de rezultate returnate de interogări:
Code language: SQL (Structured Query Language) (sql)
Deoarece rânduri cu valoarea 2 și 3 sunt duplicate, UNION
le scoase și păstrate numai valori unice.,
următoarea diagramă Venn ilustrează unirea a două seturi de rezultate care vin de la t1
și t2
tabele:
Dacă utilizați UNION ALL
în mod explicit, rândurile duplicat, dacă sunt disponibile, rămâne în rezultat. Pentru că UNION ALL
nu are nevoie să se ocupe de duplicate, se efectuează mai repede decât UNION DISTINCT
.,
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
după Cum puteți vedea, duplicate apar în rezultatul combinat set din cauza UNION ALL
operațiunea.
UNIUNE vs se ALĂTURE
JOIN
combină seturile de rezultate orizontal, un UNION
adaugă set de rezultate pe verticală.,ple baza de date pentru demonstrație:
să Presupunem că doriți să combinați numele și prenumele angajaților și clienților într-un singur set de rezultate, puteți folosi UNION
operator, după cum urmează:
Code language: SQL (Structured Query Language) (sql)
după Cum puteți vedea din cele de ieșire, MySQL UNION
foloseste coloana nume de prima SELECT
declarație pentru titlurile de coloană de ieșire.,
Dacă doriți să utilizați alte titluri de coloane, aveți nevoie pentru a utiliza coloana alias-uri în mod explicit în prima SELECT
declarație așa cum se arată în următorul exemplu:
Acest exemplu utilizează titlu de coloană din prima interogare pentru ieșire. Utilizează funcția CONCAT()
pentru a concatena prenumele, spațiul și prenumele într-un nume complet.,
MySQL UNIUNII și ORDINEA DE
Dacă doriți să sortați rezultatul set de sindicat, utilizați un ORDER BY
clauză în ultimul SELECT
declarație așa cum se arată în următorul exemplu:
Observați că dacă plasați ORDER BY
clauză în fiecare SELECT
declarație, aceasta nu va afecta ordinea rândurilor în rezultatul final stabilit.,
Pentru a diferenția între angajați și clienți, puteți adăuga o coloană, așa cum se arată în următoarea interogare:
MySQL, de asemenea, vă oferă o opțiune alternativă pentru a sorta un set de rezultate bazate pe poziția coloanei folosind ORDER BY
clauza după cum urmează:
cu toate Acestea, nu este o bună practică pentru a sorta rezultatul stabilit de poziția coloanei.
În acest tutorial, ați învățat cum să utilizați MySQL UNION
declarație pentru a combina datele de la mai multe interogări într-un singur set de rezultate.,
- a fost acest tutorial util?
- YesNo