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
UNION
poistaa 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
What is the difference between UNION and UNION ALL?
Can you explain why we need to use a subquery for WHERE or GROUP BY with UNION?
Can you show an example using GROUP BY with UNION?
Awesome!
Completion rate improved to 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
UNION
poistaa 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!