Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Union-lauseke | Sisäkkäiset alikyselyt
SQL Jatkotasolla

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 2. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Osio 2. Luku 5
some-alt