Useiden kyselyjen yhdistäminen yhdeksi tulokseksi yhdistämiskyselyn avulla

Useiden kyselyjen yhdistäminen yhdeksi tulokseksi yhdistämiskyselyn avulla

Tärkeää: Tämä on artikkeli on käännetty koneellisesti. Lue vastuuvapauslauseke. Tämän artikkelin englanninkielinen versio on täällä .

Oletetaan, että Access-tietokannassa on kaksi toisiinsa liittymättömiä taulukoita – yksi, joka tallentaa asiakastietoja ja toinen, joka tallentaa tiedot toimittajat – ja kummassakin taulukossa on yhteystiedot-kenttään. Haluat nähdä yhteyshenkilön tiedot molemmista taulukoista samassa näkymässä. Voit tehdä tämän ensin hakea yhteystietoja kunkin taulukon valintakyselyn luominen ja sitten yhdistää tulokset luomalla yhdistämiskyselyn avulla.

Huomautus: Tämän artikkelin sisältö on tarkoitettu käytettäväksi Access-työpöytätietokannoissa. Et voi luoda tai käyttää yhdistämiskyselyn Access verkkotietokannoissa eikä Access-verkkosovelluksissa.

Tarvitsetko kertauksen perusvalintakyselyiden luomisesta? Katso yksinkertaisen kyselyn luominen.

Muutama huomioon otettava asia yhdistämiskyselyn luomisesta:

  • Yhdistämiskyselyssä yhdistettävillä valintakyselyillä on oltava yhtä monta tuloskenttää. Lisäksi niiden on oltava samassa järjestyksessä, ja niiden tietotyyppien on oltava samat tai yhteensopivat. Kun suoritat yhdistämiskyselyn, toisiaan vastaavien kenttien tiedot yhdistetään samaan tuloskenttään, jolloin kyselyn tuloksessa on yhtä monta kenttää kuin SELECT-komennoissa.

  • Yhdistämiskysely on SQL-kysely, joten ne on kirjoitettava suoraan SQL-koodina. SQL-kyselyjä (ja yhdistämiskyselyjä) voi kirjoittaa SQL-näkymässä.

Vaihe 1: Valintakyselyiden luominen

Huomautus: Vaikka valintakyselyssä voi käyttää useita taulukoita tai kyselyjä, tässä ohjeessa oletetaan, että yhdistettävien valintakyselyiden tiedot ovat peräisin yhdestä taulukosta.

  1. Valitse Luo-välilehden Kyselyt-ryhmässä Kyselyn rakennenäkymä.

  2. Kaksoisnapsauta Näytä taulukko -valintaikkunassa taulukkoa, joka sisältää halutut kentät. Järjestelmä lisää taulukon kyselyn suunnitteluikkunaan.

  3. Sulje Näytä taulukko -valintaikkuna.

  4. Kaksoisnapsauta kyselyn suunnitteluikkunassa kutakin sisällytettävää kenttää.
    Kun valitset kenttiä, muista lisätä sama määrä kenttiä ja samassa järjestyksessä kuin toisissa valintakyselyissä. Varmista, että kenttien tietotyypit ovat yhteensopivat toisten kyselyiden vastaavissa paikoissa olevien kenttien kanssa. Jos esimerkiksi ensimmäisessä valintakyselyssä on viisi kenttää, joista ensimmäisessä on päivämäärä/aika-arvoja, varmista, että muissa yhdistettävissä valintakyselyissä on myös viisi kenttää ja että ensimmäisessä on päivämäärä/aika-arvoja.

  5. Voit lisätä ehtoja kenttiin kirjoittamalla tarvittavat lausekkeiden kenttäruudukon ehdot -riville.

  6. Kun olet lisännyt kentät ja niiden ehdot, suorita valintakysely ja tarkista tulos. Valitse rakenne -välilehden tulokset -ryhmässä Suorita.

  7. Siirry kyselyn rakennenäkymään.

  8. Tallenna valintakysely ja jätä se avatuksi.

  9. Toista edellä mainitut toimet kaikille yhdistettäville valintakyselyille.

Lisätietoja ehtojen käyttämisestä kyselyssä on ohjeaiheessa ehtojen kyselyyn.

Vaihe 2: Valintakyselyiden yhdistäminen

Tässä vaiheessa voit luoda yhdistämiskyselyn SQL-lauseita käyttäen. (Lisätietoja on kohdassa SQL-syntaksi alla.)

  1. Valitse Luo-välilehden Kyselyt-ryhmässä Kyselyn rakennenäkymä.

  2. Sulje Näytä taulukko -valintaikkuna.

  3. Valitse Rakenne-välilehden Kysely-ryhmästä Yhdiste.

Access piilottaa kyselyn suunnitteluikkunan ja näyttää SQL-näkymän objektivälilehden. Tässä vaiheessa SQL-näkymän objektivälilehti on tyhjä.

  1. Napsauta ensimmäisen yhdistämiskyselyyn lisättävän valintakyselyn välilehteä.

  2. Valitse Aloitus -välilehden Näytä > SQL-näkymä.

  3. Kopioi valintakyselyn SQL-koodi. Napsauta sen yhdistämiskyselyn välilehteä, jota aloit luoda vaiheessa 1.

  4. Liitä valintakyselyn SQL-koodi yhdistämiskyselyn SQL-näkymän objektivälilehteen.

  5. Poista valintakyselyn SQL-lauseen lopussa oleva puolipiste (;).

  6. Paina Enter, siirrä kohdistin yksi rivi alaspäin ja kirjoita sitten uudelle riville UNION .

  7. Napsauta seuraavan yhdistämiskyselyyn lisättävän valintakyselyn välilehteä.

  8. Noudata vaiheita 5–10, kunnes olet kopioinut ja liittänyt kaikkien valintakyselyiden SQL-koodin yhdistämiskyselyn SQL-näkymä-ikkunaan. Älä poista viimeisen valintakyselyn lopusta puolipistettä tai lisää loppuun mitään.

  9. Valitse Rakenne-välilehden Tulokset-ryhmästä Suorita.

Yhdistämiskyselyn tulos näkyy tietotaulukkonäkymä.

Sivun alkuun

Yhdistämiskyselyiden käyttövihjeitä

  • Jos haluat tietää, mitkä rivit ovat peräisin mistäkin taulukosta, lisää kunkin SELECT-komennon kenttäluettelon loppuun merkkijono.

    Jos esimerkiksi jokin SELECT-komento hakee kenttiä Tuotteet-nimisestä taulukosta ja toinen hakee kenttiä Palvelut-nimisestä taulukosta, voit lisätä ensimmäisen komennon kenttäluettelon loppuun merkkijonon "Tuotteet" ja toisen komennon kenttäluettelon loppuun merkkijonon "Palvelu". Voit määrittää merkkijonoille myös kentän aliaksen (esimerkiksi "type") käyttämällä AS-avainsanaa, kuten seuraavasta esimerkistä näkyy:

    SELECT field1, field2, ... "Product" AS type

    SELECT field1, field2, ... "Service" AS type

    Kyselyn tuloksessa näkyy tällöin kenttä nimeltä "tyyppi", josta näkyy, onko rivi peräisin Tuotteet-taulukosta vai Palvelut-taulukosta.

  • Kukin UNION-avainsana yhdistää sitä välittömästi edeltävän ja seuraavan SELECT-komennon. Jos käytät kyselyssä ALL-avainsanaa joidenkin UNION-avainsanojen kanssa mutta et kaikkien, tuloksessa näkyy vain sellaiset toistuvat rivit, jotka ovat peräisin UNION ALL -määritteellä yhdistetyistä SELECT-komentoypareista mutta ei ilman ALL-avainsanaa käytetyllä UNION-määritteellä yhdistetyistä SELECT-komentopareista.

  • Valintakyselyjen sisältämien kenttien määrän, tietotyyppien ja järjestyksen on oltava samat. Voit käyttää kenttien vastaavuuden varmistamisessa lausekkeita, kuten laskutoimituksia tai alikyselyitä.

    Voit esimerkiksi määrittää kaksinumeroisen vuosikentän vastaamaan nelinumeroista vuosikenttää poimimalla nelinumeroisen vuoden kaksi viimeistä numeroa Right-funktiolla.

Uuden taulukon luominen yhdistämiskyselyn tuloksesta

Käytä ensin uuden valintakyselyn yhdistämiskyselyn syötteenä ja käyttää sitten tätä Valintakyselyä perustana olevan taulukon luovan kyselyn mukaisesti seuraavasti:

  1. Luo ja tallenna yhdistämiskysely.

  2. Valitse Luo-välilehden Kyselyt-ryhmässä Kyselyn rakennenäkymä.

  3. Valitse Näytä taulukko -valintaikkunan Kyselyt-välilehti.

  4. Kaksoisnapsauta yhdistämiskyselyä ja sulje sitten Näytä taulukko ‑valintaikkuna.

    Huomautus: Jos sanomapalkissa näkyy suojausvaroitus, muutoskyselyt saattavat olla poissa käytöstä. Voit ottaa muutoskyselyt käyttöön valitsemalla sanomapalkissa Ota sisältö käyttöön.

  5. Kaksoisnapsauta yhdistämiskyselyn objektivälilehden rakenneruudukossa tähteä (*), jos haluat käyttää uuden taulukon luonnissa kaikkia yhdistämiskyselyn kenttiä.

  6. Valitse Rakenne-välilehden Kyselylaji-ryhmästä Luo taulukko.

  7. Kirjoita uuden taulukon nimi Taulukon luova kysely -valintaikkunaan.

  8. Voit myös määrittää toisen tietokannan, johon luot taulukon.

  9. Valitse OK.

  10. Valitse Rakenne-välilehden Tulokset-ryhmästä Suorita.

Täydellisen ulkoliitoksen tekeminen yhdistämiskyselyn avulla

Yhdistämiskyselyllä voi tehdä täyden ulkoliitos. Täysi ulkoliitos ei rajoita kummastakaan yhdistetystä taulukosta peräisin olevia rivejä, vaan yhdistää rivit liitoskentän arvojen perusteella.

  1. Luo kysely, jossa on vasen ulkoliitos täydessä ulkoliitoksessa käytettävässä kentässä.

  2. Valitse Aloitus-välilehden Näkymät-ryhmästä Näytä ja valitse sitten SQL-näkymä.

  3. Kopioi SQL-koodi Ctrl+C-näppäinyhdistelmällä.

  4. Poista puolipiste FROM-lauseen lopusta ja paina sitten Enter-näppäintä.

  5. Kirjoita UNIONja paina sitten Enter-näppäintä.

    Huomautus: Älä käytä ALL-avainsanaa, kun suoritat täyden ulkoliitoksen yhdistämiskyselyllä.

  6. Liitä vaiheessa 3 kopioimasi SQL-koodi Ctrl+V-näppäinyhdistelmällä.

  7. Muuta liittämässäsi koodissa LEFT JOIN -määritteen tilalle RIGHT JOIN.

  8. Poista puolipiste toisen FROM-lauseen lopusta ja paina sitten Enter-näppäintä.

  9. Lisää WHERE-lause, joka määrittää, että FROM-lauseen ensimmäiseen taulukkoon (vasempaan taulukkoon) sisältyvän liitoskentän arvo on NULL.

    Jos esimerkiksi FROM-lause on

    FROM Products RIGHT JOIN [Order Details] 
    ON Products.ID = [Order Details].[Product ID]

    voit lisätä WHERE-lauseen

    WHERE Products.ID IS NULL

  10. Kirjoita WHERE-lauseen loppuun puolipiste (;) sen merkiksi, että yhdistämiskysely päättyy siihen.

  11. Valitse Rakenne-välilehden Tulokset-ryhmässä Suorita.
    Yhdistämiskyselyn tulokset näkyvät tietotaulukkonäkymä.

Lisätietoja on artikkelissa kyselyn tietolähteiden liittäminen.

Sivun alkuun

Yhdistämiskyselyn vaatimukset ja SQL-syntaksi

Yhdistämiskyselyn vaatimuksia

  • Yhdistämiskyselyssä yhdistettävillä valintakyselyillä on oltava yhtä monta tuloskenttää. Lisäksi niiden on oltava samassa järjestyksessä, ja niiden tietotyyppien on oltava samat tai yhteensopivat. Kun suoritat yhdistämiskyselyn, toisiaan vastaavien kenttien tiedot yhdistetään samaan tuloskenttään, jolloin kyselyn tuloksessa on yhtä monta kenttää kuin SELECT-komennoissa.

    Huomautus: Yhdistämiskyselyssä Luku- ja Teksti-tietotyypit ovat yhteensopivia.

  • Yhdistämiskysely on SQL-kysely, joten ne on kirjoitettava suoraan SQL-koodina. SQL-kyselyjä (ja yhdistämiskyselyjä) voi kirjoittaa SQL-näkymässä.

Yhdistämiskyselyn SQL-syntaksi

Yhdistämiskyselyssä kullakin valintakyselyllä (eli SELECT-komennolla) on seuraavat lauseet:

Lause

Sisältää luettelon...

SELECT

Kentät, joissa on tietoja, jotka haluat noutaa.

FROM

Taulukot, jotka sisältävät kyseiset kentät.

Valinnainen WHERE

Kyseisiä kenttiä koskevat ehdot.

SELECT-komennot yhdistetään UNION-avainsanalla.

Yhdistämiskyselyn SQL-syntaksi on perusmuodossaan seuraavanlainen:

SELECT field_1[, field_2,…]
FROM table_1[, table_2,…]
UNION [ALL]
SELECT field_a[, field_b,...]
FROM table_a[, table_b,…];

Oletetaan esimerkiksi, että tietokannassa on Tuotteet- ja Palvelut-nimiset taulukot. Kummassakin taulukossa on kentät, joissa on tuotteen tai palvelun nimi, hinta, takuuaika ja tieto tuotteen tai palvelun tarjoamisesta yksinoikeudella. Vaikka Tuotteet-taulukko tallentaa tuotetakuutiedot ja Palvelut-taulukko tallentaa palvelutakuutiedot, niiden tiedot vastaavat perustaltaan toisiaan (sisältyykö tiettyyn tuotteeseen tai palveluun laatulupaus vai ei). Nämä kummankin taulukon neljä kenttää voidaan yhdistää esimerkiksi seuraavanlaisella yhdistämiskyselyllä:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services;

Tarkastellaan nyt edellä olevaa syntaksia rivi riviltä:

Syntaksi

Kuvaus

Lisätietoja

SELECT nimi, hinta, takuuaika, yksinoikeus

Ensimmäinen SELECT-lause

SELECT-komennon jälkeen tulee tunnusluettelo, joka määrittää tietojen lähdekentät.

SELECT-lauseessa on aina oltava vähintään yksi kenttä.

Tässä SELECT-lauseessa on kenttätunnukset nimi, hinta, takuuaika ja yksinoikeus.

FROM Tuotteet

Ensimmäisen FROM-lause

FROM-lause tulee SELECT-lauseen jälkeen, ja yhdessä ne muodostavat perus-SELECT-komennon.

FROM-avainsanan jälkeen tulee tunnusluettelo, joka määrittää SELECT-lauseen kenttien lähdetaulukot.

FROM-lauseessa on aina oltava vähintään yksi kenttä.

FROM-lauseessa on taulukkotunnus Tuotteet.

UNION ALL

Tämä on UNION-avainsana, jonka perässä on valinnainen ALL-avainsana.

UNION ilmaisee, että sitä edeltävän SELECT-lauseen tulos yhdistetään sen jäljessä olevan SELECT-lauseen tulokseen.

Kun käytössä on ALL-avainsana, toistuvia rivejä ei poisteta yhdistämiskyselyn tuloksesta.

ALL-avainsana voi merkittävästi parantaa kyselyn suorituskykyä, sillä Accessin ei tarvitse tarkistaa toistuvien rivien tuloksia

Käytä ALL-avainsanaa, jos jokin seuraavista ehdoista on tosi:

  • Olet varma, että valintakyselyt eivät tuota toistuvia rivejä.

  • Sillä ei ole mitään merkitystä, onko tuloksessa toistuvia rivejä.

  • Haluat nähdä toistuvat rivit.

SELECT nimi, hinta, takuuehto, yksinoikeus

Toinen SELECT-lause

Sääntöjä:

  • Toisessa SELECT-lauseessa on oltava sama määrä kenttiä kuin ensimmäisessä SELECT-lauseessa.

  • Yhteisiä tietoja sisältävien kenttien on oltava samassa järjestyksessä lauseessa.

  • Yhteisiä tietoja sisältävien kenttien tietotyyppien on oltava samat tai yhteensopivat.

Huomautus: Yhdistämiskyselyn tuloksen kenttien nimet tulevat ensimmäisestä SELECT-lauseesta. Tämän vuoksi esimerkiksi takuuaika- ja takuuehto-kenttien tiedot näkyvät takuuaika-sarakkeessa kyselyn tuloksessa.

FROM Palvelut

Toinen FROM-lause

Yhdistämiskyselyn FROM-lauseiden taulukoille ei ole mitään rajoituksia. Voit luoda yhdistämiskyselyn, jonka kaikissa FROM-lauseissa on käytetty samoja taulukoita. FROM-lauseissa voi myös olla eri määrä taulukoita. Tässä esimerkissä kummassakin FROM-lauseessa on vain yksi taulukko.

Sivun alkuun

Huomautus: Konekäännöksestä ilmoittava vastuusvapauslauseke: Tämä artikkeli on käännetty tietokonejärjestelmällä, eikä kieliasiantuntija ole muokannut sitä. Microsoft tarjoaa nämä konekäännökset avuksi muille kuin englantia puhuville käyttäjille, jotta he saavat lisätietoja Microsoftin tuotteista, palveluista ja tekniikoista. Koska artikkeli on koneellisesti käännetty, se saattaa sisältää sanasto-, lauseoppi- ja kielioppivirheitä.

Kehitä taitojasi
Tutustu koulutusmateriaaliin
Saat uudet ominaisuudet ensimmäisten joukossa
Liity Office Insider -käyttäjiin

Oliko näistä tiedoista hyötyä?

Kiitos palautteesta!

Kiitos palautteestasi! Näyttää siltä, että Office-tukiedustajamme avusta voi olla sinulle hyötyä.

×