Resumé: i denne tutorial vil du lære at bruge MySQL UNION
operatør for at kombinere to eller flere resultatsæt fra flere SELECT
erklæringer i et enkelt resultatsæt.
MySQL-operatoren UNION
MySQL UNION
operatøren giver dig mulighed for at kombinere to eller flere resultatsæt af forespørgsler i et enkelt resultatsæt., Det illustrerer følgende syntaks af UNION
bruger:
for At kombinere resultatet af to eller flere forespørgsler ved hjælp af UNION
operatør, er disse de grundlæggende regler, du skal følge:
- Første, antallet og de ordrer af kolonner, der vises i alle
SELECT
erklæringer skal være den samme. - for det andet skal datatyperne af kolonner være de samme eller kompatible.,
som standard fjernerUNION
operatøren dublerede rækker, selvom du ikke angiverDISTINCT
operatøren eksplicit.,
Lad os se på følgende eksempler på tabeller: t1
og t2
:
følgende erklæring kombinerer resultatet sæt tilbage fra t1
og t2
tabeller:
Code language: SQL (Structured Query Language) (sql)
Det endelige resultat-sættet indeholder de forskellige værdier fra forskellige resultatsæt, der returneres af forespørgsler:
Code language: SQL (Structured Query Language) (sql)
Fordi det rækker med værdien 2 og 3 er dubletter, UNION
fjernet dem og holdt kun unikke værdier.,
følgende Venn-diagram illustrerer union af to resultatsæt, der kommer fra t1
og t2
tabeller:
Hvis du bruger UNION ALL
udtrykkeligt, den dobbelte rækker, hvis de er tilgængelige, forbliver i resultatet. Fordi UNION ALL
ikke behøver at håndtere dubletter, udfører den hurtigere end UNION DISTINCT
.,
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Som du kan se, dubletter vises i det samlede resultat er indstillet på grund af UNION ALL
drift.
UNION vs. JOIN
AJOIN
kombinerer resultatsæt vandret, aUNION
tilføjer resultat indstillet lodret.,ple database til demonstration:
lad os Antage, at du ønsker at kombinere dit for-og efternavn af medarbejdere og kunder i et enkelt resultatsæt, kan du bruge UNION
operatør som følger:
Code language: SQL (Structured Query Language) (sql)
Som du kan se fra output, MySQL UNION
bruger den kolonne navnene på den første SELECT
erklæring til kolonneoverskrifter af output.,
Hvis du ønsker at bruge andre kolonneoverskrifter, skal du bruge kolonne aliaser eksplicit i den første SELECT
erklæring, som vist i følgende eksempel:
Dette eksempel bruger på kolonneoverskriften på den første forespørgsel til output. Den bruger funktionen CONCAT()
til at sammenkæde fornavn, mellemrum og efternavn til et fuldt navn.,
MySQL UNION og ORDER BY
Hvis du ønsker at sortere resultatet af en union, skal du bruge en ORDER BY
klausul i de sidste SELECT
erklæring, som vist i følgende eksempel:
Bemærk, at hvis du placerer ORDER BY
klausul i hvert SELECT
erklæring, vil det ikke påvirke rækkefølgen af rækker i det endelige resultat-sæt.,
for At skelne mellem medarbejdere og kunder, kan du tilføje en kolonne, som vist i følgende query:
MySQL giver dig også en alternativ mulighed for at sortere et resultat, der er baseret på kolonne position ved hjælp af ORDER BY
klausul som følger:
Men det er ikke en god ide at sortere resultatet efter kolonne position.
i denne vejledning har du lært, hvordan du bruger Mys .l UNION
– erklæring til at kombinere data fra flere forespørgsler til et enkelt resultatsæt.,
- var denne vejledning nyttig?
- YesNo