UNION-Lauseke
Olemme herättäneet asiakkaan huomion, joka tarvitsee SQL-kyselyitä. Ennen kuin sukellamme JOINs-toimintoihin, opitaan UNION-lauseesta, joka on olennainen useiden taulukoiden yhdistämisessä.
Tässä on joitakin tärkeitä asioita, jotka on hyvä tietää UNION-lauseen käytöstä:
-
Sarakkeiden määrä ja järjestys: Kaikissa
UNION-lauseella yhdistetyissä kyselyissä on oltava sama määrä sarakkeita samassa järjestyksessä; -
Tietotyypit: Jokaisen kyselyn sarakkeiden on oltava yhteensopivia tietotyyppejä;
-
Uniikit rivit: Oletuksena
UNIONpoistaa päällekkäiset rivit. KäytäUNION ALL, jos haluat säilyttää päällekkäisyydet.
Ymmärtääksesi paremmin kuinka yhdistää taulukoita oikein käyttämällä UNION-lausetta, esittelin lisätaulukon, joka sisältää tietoja contractors.
Täällä ei ole paljon tietoa, vain first_name, last_name ja email.
Voit nähdä, että tällä taulukolla on yhtäläisyyksiä employees-taulukon kanssa. Käyttämällä UNION-lausetta voimme yhdistää nämä kaksi taulukkoa esimerkiksi nähdäksesi luettelon kaikista työntekijöiden ja urakoitsijoiden nimistä ja sukunimistä, jotka ovat mukana yrityksessä.
Tätä varten käytämme UNION-lausetta:
12345678(SELECT employee_id as id, first_name, last_name FROM employees) UNION (SELECT contractor_id as id, first_name, last_name FROM contractors) ORDER BY id
Käydään läpi, mitä tapahtuu:
Meillä on kaksi kyselyä, jotka kumpikin palauttavat kolme saraketta samoilla tietotyypeillä. Haluamme nähdä Id, first_name ja last_name kaikista yrityksessä. Nimesimme myös Id-sarakkeen uudelleen, jotta molemmilla kyselyillä on samannimiset sarakkeet.
Sitten käytämme UNION-operaattoria yhdistääksemme kyselyjen tulokset, poistaen duplikaatit (vaikka tässä tapauksessa niitä ei ole).
Lopuksi lajittelemme tulokset Id-sarakkeen mukaan käyttäen ORDER BY -lausetta.
Huomautus
Lajittelemme
Id-sarakkeen mukaan, joka on yhteinen sarake molemmissa tauluissa.
Käytettyämme UNION-operaattoria saamme "yhden suuren kyselyn", jota voimme edelleen käsitellä lausekkeilla kuten ORDER BY.
Emme voi suoraan käyttää WHERE tai GROUP BY yhdistetyissä tauluissa, jotka on yhdistetty UNION-lauseella. Näiden lausekkeiden soveltamiseksi meidän on käytettävä alikyselyä FROM-osiossa. Tässä on esimerkki siitä, miten se tehdään:
123456789SELECT id, first_name, last_name FROM ( SELECT employee_id AS id, first_name, last_name FROM employees UNION SELECT contractor_id AS id, first_name, last_name FROM contractors ) AS combined WHERE first_name = 'Jane'
Alikyselyn käyttäminen FROM-osiossa antaa meille enemmän joustavuutta! Se saattaa vaikuttaa aluksi hankalalta, mutta tämän hallitseminen tekee monimutkaisten kyselyiden kirjoittamisesta paljon helpompaa.
1. Mitkä sarakkeet ovat pakollisia käytettäessä UNION-lausetta SQL:ssä?
2. Kuinka UNION-lause käsittelee oletusarvoisesti päällekkäisiä rivejä?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 4
UNION-Lauseke
Pyyhkäise näyttääksesi valikon
Olemme herättäneet asiakkaan huomion, joka tarvitsee SQL-kyselyitä. Ennen kuin sukellamme JOINs-toimintoihin, opitaan UNION-lauseesta, joka on olennainen useiden taulukoiden yhdistämisessä.
Tässä on joitakin tärkeitä asioita, jotka on hyvä tietää UNION-lauseen käytöstä:
-
Sarakkeiden määrä ja järjestys: Kaikissa
UNION-lauseella yhdistetyissä kyselyissä on oltava sama määrä sarakkeita samassa järjestyksessä; -
Tietotyypit: Jokaisen kyselyn sarakkeiden on oltava yhteensopivia tietotyyppejä;
-
Uniikit rivit: Oletuksena
UNIONpoistaa päällekkäiset rivit. KäytäUNION ALL, jos haluat säilyttää päällekkäisyydet.
Ymmärtääksesi paremmin kuinka yhdistää taulukoita oikein käyttämällä UNION-lausetta, esittelin lisätaulukon, joka sisältää tietoja contractors.
Täällä ei ole paljon tietoa, vain first_name, last_name ja email.
Voit nähdä, että tällä taulukolla on yhtäläisyyksiä employees-taulukon kanssa. Käyttämällä UNION-lausetta voimme yhdistää nämä kaksi taulukkoa esimerkiksi nähdäksesi luettelon kaikista työntekijöiden ja urakoitsijoiden nimistä ja sukunimistä, jotka ovat mukana yrityksessä.
Tätä varten käytämme UNION-lausetta:
12345678(SELECT employee_id as id, first_name, last_name FROM employees) UNION (SELECT contractor_id as id, first_name, last_name FROM contractors) ORDER BY id
Käydään läpi, mitä tapahtuu:
Meillä on kaksi kyselyä, jotka kumpikin palauttavat kolme saraketta samoilla tietotyypeillä. Haluamme nähdä Id, first_name ja last_name kaikista yrityksessä. Nimesimme myös Id-sarakkeen uudelleen, jotta molemmilla kyselyillä on samannimiset sarakkeet.
Sitten käytämme UNION-operaattoria yhdistääksemme kyselyjen tulokset, poistaen duplikaatit (vaikka tässä tapauksessa niitä ei ole).
Lopuksi lajittelemme tulokset Id-sarakkeen mukaan käyttäen ORDER BY -lausetta.
Huomautus
Lajittelemme
Id-sarakkeen mukaan, joka on yhteinen sarake molemmissa tauluissa.
Käytettyämme UNION-operaattoria saamme "yhden suuren kyselyn", jota voimme edelleen käsitellä lausekkeilla kuten ORDER BY.
Emme voi suoraan käyttää WHERE tai GROUP BY yhdistetyissä tauluissa, jotka on yhdistetty UNION-lauseella. Näiden lausekkeiden soveltamiseksi meidän on käytettävä alikyselyä FROM-osiossa. Tässä on esimerkki siitä, miten se tehdään:
123456789SELECT id, first_name, last_name FROM ( SELECT employee_id AS id, first_name, last_name FROM employees UNION SELECT contractor_id AS id, first_name, last_name FROM contractors ) AS combined WHERE first_name = 'Jane'
Alikyselyn käyttäminen FROM-osiossa antaa meille enemmän joustavuutta! Se saattaa vaikuttaa aluksi hankalalta, mutta tämän hallitseminen tekee monimutkaisten kyselyiden kirjoittamisesta paljon helpompaa.
1. Mitkä sarakkeet ovat pakollisia käytettäessä UNION-lausetta SQL:ssä?
2. Kuinka UNION-lause käsittelee oletusarvoisesti päällekkäisiä rivejä?
Kiitos palautteestasi!