Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Union-lauseke | Section
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Keskitaso SQL

bookUnion-lauseke

Pyyhkäise näyttääksesi valikon

Olemme herättäneet asiakkaan huomion, joka tarvitsee SQL-kyselyitä. Ennen kuin siirrymme JOINs-lauseisiin, tutustutaan UNION-lauseeseen, joka on olennainen useiden taulukoiden yhdistämisessä.

Note
Määritelmä

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

Tässä on joitakin tärkeitä asioita, jotka tulee tietää 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 tietotyypeiltään;

  3. Uniikit rivit: Oletuksena UNION poistaa päällekkäiset rivit. Käytä UNION ALL, jos haluat säilyttää duplikaatit.

Ymmärtääksesi paremmin kuinka tauluja yhdistetään oikein käyttämällä UNION-lausetta, esittelin lisätaulun, joka sisältää tietoja contractors-taulusta.

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

Voit huomata, että tämä taulu muistuttaa employees-taulua. Käyttämällä UNION-lausetta voimme yhdistää nämä kaksi taulua esimerkiksi nähdäksemme luettelon kaikista yrityksen työntekijöiden ja urakoitsijoiden nimistä ja sukunimistä.

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
copy

Käydään läpi, mitä tapahtuu:

Meillä on kaksi kyselyä, jotka molemmat palauttavat kolme saraketta samoilla tietotyypeillä. Haluamme nähdä kaikkien yrityksen henkilöiden Id, first_name ja last_name. Olemme myös nimenneet Id-sarakkeen uudelleen, jotta molemmissa kyselyissä on samannimiset sarakkeet.

Sen jälkeen käytämme UNION-lausetta yhdistääksemme kyselyiden tulokset, jolloin kaksoiskappaleet poistetaan (tässä tapauksessa niitä ei ole).

Lopuksi järjestämme tulokset Id-sarakkeen mukaan käyttäen ORDER BY -lausetta.

Note
Huomio

Järjestämme tulokset Id-sarakkeen mukaan, joka on yhteinen sarake molemmissa tauluissa.

UNION-lauseen jälkeen saadaan "yksi suuri kysely", jota voidaan edelleen käsitellä esimerkiksi ORDER BY -lauseella.

Emme voi käyttää suoraan WHERE- tai GROUP BY -lauseita tauluissa, jotka on yhdistetty UNION-operaatiolla. Näiden lauseiden käyttämiseksi tulee hyödyntää alikyselyä FROM-osiossa. Alla on esimerkki tämän toteuttamisesta:

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'
copy

Alikyselyn käyttäminen FROM-osiossa tarjoaa enemmän joustavuutta. Tämä voi aluksi vaikuttaa haastavalta, mutta tämän hallitseminen helpottaa monimutkaisten kyselyiden kirjoittamista huomattavasti.

1. Mitkä sarakkeet vaaditaan käytettäessä UNION-lausetta SQL:ssä?

2. Miten UNION-lause käsittelee oletuksena päällekkäisiä rivejä?

question mark

Mitkä sarakkeet vaaditaan käytettäessä UNION-lausetta SQL:ssä?

Select the correct answer

question mark

Miten UNION-lause käsittelee oletuksena päällekkäisiä rivejä?

Select the correct answer

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

Osio 1. Luku 13
some-alt