Käsitellessämme tietoja tietokannoissa usein käytämme asetettuja operaattoreita SQL , noutaa tietoja vaatimuksemme mukaan yhdistämällä vähintään kaksi SELECT-käskyä. Tässä SQL UNIONia käsittelevässä artikkelissa käsittelen UNION-operaattoria, jota käytetään tietojen hakemiseen seuraavassa järjestyksessä:
Anna meidän aloittaa!
Mikä on SQL UNION -operaattori?
Kuten nimestä voi päätellä, tätä operaattoria / lauseketta käytetään yhdistämään kahden tai useamman SELECT-lauseen tulokset. Tässä jokaisella UNION-käskyssä käytetyllä SELECT-käskyllä on oltava sama määrä sarakkeita samassa järjestyksessä. Kaikilla SELECT-käskyjen sarakkeilla on oltava samanlaiset tietotyypit.
UNION-lauseke antaa tuotokseksi vain yksilölliset arvot. Jos haluat kopioida arvoja, sinun on käytettävä UNION ALL -lauseketta.
Siirrymme tässä artikkelissa SQL UNIONista ymmärtämään syntaksia.
SQL UNION -syntaksi
UNIONIN syntaksi
SELECT sarake1, sarake2, sarake3, ..., sarakeN taulukosta1 UNION SELECT sarake1, sarake2, sarake3, ..., sarakeN taulukosta2
UNIONIN KAIKKI syntaksi
SELECT sarake1, sarake2, sarake3, ..., sarakeN taulukosta1 UNION ALL SELECT sarake1, sarake2, sarake3, ..., sarakeN taulukosta2
Jatketaan tässä artikkelissa, ymmärretäänkö erot UNIONIN ja UNION ALL: n välillä.
Erot SQL UNIONin ja UNION ALLin välillä
LIITTO | UNIONIN KAIKKI |
Yhdistää vähintään kaksi tulosjoukkoa eikä pidä päällekkäisiä arvoja. | Yhdistää vähintään kaksi tulosjoukkoa ja pitää päällekkäiset arvot. |
Syntaksi: LIITTO | Syntaksi: UNIONIN KAIKKI |
![]() |
Seuraavaksi, tässä SQL UNION -artikkelissa, ymmärretään eri tapoja käyttää tätä operaattoria.
Esimerkkejä SQL UNION ja UNION ALL
Paremman ymmärryksesi vuoksi harkitsen seuraavia taulukoita, joissa näytetään sinulle erilaisia esimerkkejä.
Työntekijöiden taulukko
EmpID | Nimi | EmpAge | Kaupunki | Postinumero | Maa |
yksi | Emma | 2. 3 | Berliini | 12109 | Saksa |
2 | Rahul | 26 | Mumbai | 400015 | Intia |
3 | Aayra | 24 | New York | 10014 | KÄYTTÖ |
4 | John | 32 | Lontoo | E1 7AE | Iso-Britannia |
5 | Derek | 29 | New York | 10012 | KÄYTTÖ |
Projektitaulukko
ProjectID | Nimi | Työpäivät | Kaupunki | Postinumero | Maa |
yksi | Projekti 1 | 10 | Berliini | 12109 | Saksa |
2 | Projekti 2 | 7 | Mumbai | 400015 | Intia |
3 | Projekti 3 | kaksikymmentä | Delhi | 110006 | Intia |
4 | Projekti 4 | viisitoista | Mumbai | 400015 | Intia |
5 | Projekti 5 | 28 | Berliini | 12109 | Saksa |
Aloitetaan esimerkkien avulla.
SQL UNION -esimerkkejä
Esimerkki UNIONIN operaattorista
Kirjoita kysely hakeaksesi erilliset kaupungit Työntekijät ja projektit -taulukosta.
VALITSE Kaupunki Työntekijöistä UNION VALITSE Kaupunki Projektista TILAA Kaupunki
Tuotos:
Kaupunki |
Berliini |
Delhi |
Lontoo |
Mumbai |
New York |
UNION ALL Operator -esimerkki
Kirjoita kysely kaupunkien hakemiseksi Työntekijät ja projektit -taulukosta. Tähän on sisällytettävä päällekkäiset arvot.
VALITSE Kaupunki Työntekijöiltä UNION KAIKKI VALITSE Kaupunki projekteista TILAA Kaupunki
Tuotos:
Kaupunki |
Berliini |
Berliini muuntamalla kaksinkertainen int |
Berliini |
Delhi |
Lontoo |
Mumbai |
Mumbai |
Mumbai |
New York |
New York |
Seuraavaksi tässä artikkelissa ymmärretään, kuinka UNION-lauseketta käytetään SQL-aliaksilla.
UNION SQL-aliaksilla
SQL-aliaksia käytetäänantaa taulukolle tai sarakkeelle väliaikainen nimi. Joten kirjoitetaan kysely kaikkien yksilöllisten työntekijöiden ja projektien listalle.
VALITSE 'Työntekijä' AS-tyyppi, nimi, kaupunki, maa työntekijöistä UNIONIN VALITSE 'projekti', nimi, kaupunki, maa hankkeista
Tuotos:
Tyyppi | Nimi | Kaupunki | Maa |
Työntekijä | Emma | Berliini | Saksa |
Työntekijä | Rahul | Mumbai | Intia |
Työntekijä | Aayra | New York | KÄYTTÖ |
Työntekijä | John | Lontoo | Iso-Britannia |
Työntekijä | Derek | New York | KÄYTTÖ |
Projekti | Projekti 1 | Berliini | Saksa |
Projekti | Projekti 2 | Mumbai | Intia |
Projekti | Projekti 3 | Delhi | Intia |
Projekti | Projekti 4 | Mumbai | Intia |
Projekti | Projekti 5 | Berliini | Saksa |
UNION WHERE-lausekkeella
Kirjoita kysely, jolla voit hakea erilliset Intian kaupungit ja niiden postinumero sekä työntekijät että projektit -taulukosta.
SELECT City, PostalCode, Country FROM Employees WHERE Country = 'India' UNION SELECT City, PostalCode, Country FROM Projects WHERE Country = 'India' ORDER BY City
Tuotos:
Kaupunki | Postinumero | Maa |
Delhi | 110006 | Intia |
Mumbai | 400015 | Intia |
UNION ALL with WHERE -lauseke
Kirjoita kysely Intian kaupunkien ja niiden postinumeroiden hakemiseksi sekä työntekijöiden että projektien taulukosta, jossa päällekkäiset arvot ovat sallittuja.
VALITSE Kaupunki, postinumero, maa työntekijöiltä WHERE Maa = 'Intia' UNION ALL VALITSE Kaupunki, postinumero, maa FROM Projekteista WHERE Maa = 'Intia' TILAA Kaupunki
Tuotos:
Kaupunki | Postinumero | Maa |
Delhi | 110006 | Intia |
Mumbai | 400015 | Intia |
Mumbai | 400015 | Intia |
Mumbai | 400015 | Intia |
Tässä artikkelissa eteenpäin ymmärretään, kuinka UNION- ja UNION ALL -lausekkeita käytetään JOINS-palvelun kanssa.JOINS SQL: ssä ovat joita käytetään kahden tai useamman taulukon rivien yhdistämiseen näiden taulukoiden välisen vastaavan sarakkeen perusteella.
UNIONIN LIITTYMINEN
SQL UNION -operaattoria voidaan käyttää hakea tietoja kahdesta eri taulukosta. Tarkastelen seuraavaa taulukkoa yhdessä esimerkin Employees-taulukon kanssa.
ProjectDetails-taulukko
PID | Työpäivät | EmpID | CostforProject |
yksitoista | 12 | 4 | 20000 |
22 | 16 | 3 | 35000 |
33 | 30 | yksi | 60000 |
44 | 25 | 3 | 45000 |
55 | kaksikymmentäyksi | yksi | 50000 |
SELECT EmpID, nimi, CostforProject työntekijöiltä LEFT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID UNION SELECT EmpID, Name, CostforProject FROM Employees RIGHT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID
Tuotos:
EmpID | Nimi | CostforProject |
yksi | Emma | 60000 |
yksi | Emma | 50000 |
2 | Rahul | TYHJÄ |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | John | 20000 |
5 | Derek | TYHJÄ |
UNIONIN KAIKKI LIITTYMISIIN
Kirjoita kysely hakeaksesi EmpID, nimi ja CostforProject työntekijöiltä ja ProjectDetails-taulukosta, jossa päällekkäiset arvot ovat sallittuja.
SELECT EmpID, nimi, CostforProject työntekijöiltä LEFT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID UNION ALL SELECT EmpID, Name, CostforProject FROM Employees RIGHT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID
Tuotos:
EmpID | Nimi | CostforProject |
yksi | Emma | 60000 |
yksi | Emma | 50000 |
2 | Rahul | TYHJÄ |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | John | 20000 |
5 | Derek | TYHJÄ |
4 | John | 20000 |
3 | Aayra | 35000 |
yksi | Emma | 60000 |
3 | Aayra | 35000 |
yksi | Emma | 50000 |
Tällä tavoin olen tämän SQL UNIONia koskevan artikkelin loppuun. Toivottavasti nautit tämän artikkelin lukemisesta SQL UNIONissa. Olemme nähneet erilaisia tapoja käyttää UNION- ja UNION ALL -komentoja kyselyjen kirjoittamisessa. Jos haluat oppia lisää MySQL ja tutustu tähän avoimen lähdekoodin relaatiotietokantaan ja tutustu sitten joka sisältää ohjaajan vetämän live-koulutuksen ja tosielämän projektikokemuksen. Tämä koulutus auttaa ymmärtämään MySQL: ää perusteellisesti ja auttaa hallitsemaan aihetta.
Onko sinulla kysymys meille? Mainitse se ”SQL UNION” -kommenttiosassa ja palaan sinuun.
ero menetelmän ylikuormituksen ja ohittamisen välillä