Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Union-lauseke | Section
Keskitaso SQL

Union-lauseke

Pyyhkäise näyttääksesi valikon

Olet saanut asiakkaan huomion, joka tarvitsee SQL-kyselyitä. Ennen kuin siirryt JOINs-lauseisiin, opit UNION-lauseen käytön, joka on olennainen useiden taulukoiden yhdistämisessä.

Note
Määritelmä

UNION SQL:ssä yhdistää kahden tai useamman SELECT-kyselyn tulokset yhdeksi tulosjoukoksi. Sen avulla voit yhdistää useiden kyselyiden rivit yhdeksi tietojoukoksi.

Tässä on muutamia tärkeitä asioita UNION-lauseen käytöstä:

  1. Sarakkeiden määrä ja järjestys: Kaikissa UNION-lauseella yhdistettävissä kyselyissä tulee olla sama määrä sarakkeita samassa järjestyksessä;

  2. Tietotyypit: Jokaisen kyselyn sarakkeiden tulee olla yhteensopivia tietotyypiltään;

  3. Uniikit rivit: Oletuksena UNION poistaa kaksoiskappaleet. Käytä UNION ALL, jos haluat säilyttää kaksoiskappaleet.

Ymmärtääksesi paremmin kuinka taulukoita yhdistetään oikein käyttämällä UNION-lausetta, on esitelty lisätaulu, joka sisältää tietoja contractors-taulusta.

Tässä ei ole paljon tietoa, vain first_name, last_name ja email.

Voit huomata, että tällä taululla on samankaltaisuuksia employees-taulun kanssa. Käyttämällä UNION-lausetta voit yhdistää nämä kaksi taulua esimerkiksi nähdäksesi luettelon kaikista yrityksen työntekijöiden ja urakoitsijoiden nimistä ja sukunimistä.

Tätä varten käytetään 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

Tässä on kaksi kyselyä, jotka molemmat palauttavat kolme saraketta samoilla tietotyypeillä. Tavoitteena on nähdä kaikkien yrityksen henkilöiden Id, first_name ja last_name. Id-sarake on myös nimetty uudelleen, jotta molemmissa kyselyissä on samannimiset sarakkeet.

UNION yhdistää näiden kyselyjen tulokset ja poistaa kaksoiskappaleet (vaikka tässä tapauksessa niitä ei ole).

Lopuksi tulokset lajitellaan Id-sarakkeen mukaan käyttäen ORDER BY -lausetta.

Note
Huomio

Tulokset lajitellaan Id-sarakkeen mukaan, joka on yhteinen sarake molemmissa tauluissa.

Käyttämällä UNION-lausetta saat "yhden suuren kyselyn", jota voit edelleen käsitellä esimerkiksi ORDER BY -lauseella.

Et voi käyttää suoraan WHERE- tai GROUP BY -lauseita tauluihin, jotka on yhdistetty UNION-lauseella. Näiden lauseiden käyttämiseksi sinun täytyy käyttää alikyselyä FROM-osiossa. Tässä esimerkki toteutuksesta:

123456789
SELECT 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-osassa tarjoaa enemmän joustavuutta! Tämä voi aluksi tuntua hankalalta, mutta tämän hallitseminen helpottaa monimutkaisten kyselyiden kirjoittamista huomattavasti.

1. Mitkä vaatimukset tulosjoukkojen tulee täyttää, jotta niitä voidaan yhdistää UNION-lauseella?

2. Miten UNION-lause käsittelee oletuksena päällekkäiset rivit?

question mark

Mitkä vaatimukset tulosjoukkojen tulee täyttää, jotta niitä voidaan yhdistää UNION-lauseella?

Valitse oikea vastaus

question mark

Miten UNION-lause käsittelee oletuksena päällekkäiset rivit?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 13

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Union-lauseke

Olet saanut asiakkaan huomion, joka tarvitsee SQL-kyselyitä. Ennen kuin siirryt JOINs-lauseisiin, opit UNION-lauseen käytön, joka on olennainen useiden taulukoiden yhdistämisessä.

Note
Määritelmä

UNION SQL:ssä yhdistää kahden tai useamman SELECT-kyselyn tulokset yhdeksi tulosjoukoksi. Sen avulla voit yhdistää useiden kyselyiden rivit yhdeksi tietojoukoksi.

Tässä on muutamia tärkeitä asioita UNION-lauseen käytöstä:

  1. Sarakkeiden määrä ja järjestys: Kaikissa UNION-lauseella yhdistettävissä kyselyissä tulee olla sama määrä sarakkeita samassa järjestyksessä;

  2. Tietotyypit: Jokaisen kyselyn sarakkeiden tulee olla yhteensopivia tietotyypiltään;

  3. Uniikit rivit: Oletuksena UNION poistaa kaksoiskappaleet. Käytä UNION ALL, jos haluat säilyttää kaksoiskappaleet.

Ymmärtääksesi paremmin kuinka taulukoita yhdistetään oikein käyttämällä UNION-lausetta, on esitelty lisätaulu, joka sisältää tietoja contractors-taulusta.

Tässä ei ole paljon tietoa, vain first_name, last_name ja email.

Voit huomata, että tällä taululla on samankaltaisuuksia employees-taulun kanssa. Käyttämällä UNION-lausetta voit yhdistää nämä kaksi taulua esimerkiksi nähdäksesi luettelon kaikista yrityksen työntekijöiden ja urakoitsijoiden nimistä ja sukunimistä.

Tätä varten käytetään 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

Tässä on kaksi kyselyä, jotka molemmat palauttavat kolme saraketta samoilla tietotyypeillä. Tavoitteena on nähdä kaikkien yrityksen henkilöiden Id, first_name ja last_name. Id-sarake on myös nimetty uudelleen, jotta molemmissa kyselyissä on samannimiset sarakkeet.

UNION yhdistää näiden kyselyjen tulokset ja poistaa kaksoiskappaleet (vaikka tässä tapauksessa niitä ei ole).

Lopuksi tulokset lajitellaan Id-sarakkeen mukaan käyttäen ORDER BY -lausetta.

Note
Huomio

Tulokset lajitellaan Id-sarakkeen mukaan, joka on yhteinen sarake molemmissa tauluissa.

Käyttämällä UNION-lausetta saat "yhden suuren kyselyn", jota voit edelleen käsitellä esimerkiksi ORDER BY -lauseella.

Et voi käyttää suoraan WHERE- tai GROUP BY -lauseita tauluihin, jotka on yhdistetty UNION-lauseella. Näiden lauseiden käyttämiseksi sinun täytyy käyttää alikyselyä FROM-osiossa. Tässä esimerkki toteutuksesta:

123456789
SELECT 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-osassa tarjoaa enemmän joustavuutta! Tämä voi aluksi tuntua hankalalta, mutta tämän hallitseminen helpottaa monimutkaisten kyselyiden kirjoittamista huomattavasti.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 13
some-alt