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ä.
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ä:
-
Sarakkeiden määrä ja järjestys: Kaikissa
UNION-lauseella yhdistettävissä kyselyissä tulee olla sama määrä sarakkeita samassa järjestyksessä; -
Tietotyypit: Jokaisen kyselyn sarakkeiden tulee olla yhteensopivia tietotyypiltään;
-
Uniikit rivit: Oletuksena
UNIONpoistaa 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.
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:
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-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?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme