Taulukoiden ja kyselyjen liittäminen

Kun sisällytät Access-kyselyyn useita tietolähteitä, liitoksilla rajoitetaan haluamiasi tietueita sen mukaan, miten tietolähteet liittyvät toisiinsa. Liitosten avulla voit myös yhdistää tietueita molemmista tietolähteistä, jotta jokaisesta tietueparista tulee yksi tietue kyselyn tuloksissa.

Tässä artikkelissa käsitellään erilaisia liitosten tyyppejä ja näytetään, miten niitä käytetään kyselyssä. Oletusarvoisesti liitos luodaan automaattisesti, jos kyselyssä käytetään jo kahta tietolähdettä. Liitos luodaan myös, jos on kenttiä, jotka vastaavat selvästi toisiaan. Voit poistaa automaattisesti luodun liitoksen. Tässä artikkelissa on perustietoja taulukoiden yhteyksistä, kuten siitä, miten voit luoda taulukon.

Huomautus: Voit liittää kyselyjä samalla tavalla kuin taulukoita ja liittää molempia.

Tämän artikkelin sisältö

Yleistä

Tietokanta on kokoelma tietotaulukoita, jotka vastaavat loogisia yhteyksiä toisiinsa. Taulukoiden yhdistäminen niiden yhteisillä kentillä on yhteyksien avulla. Taulukko voi olla osa mitä tahansa yhteyksien määrää, mutta jokaisessa suhteessa on aina täsmälleen kaksi taulukkoa. Kyselyssä yhteys esitetään liitoksena.

Kun lisäät kyselyyn taulukoita, Access luodaan liitokset, jotka perustuvat taulukoiden välille määritettyihin yhteyksiin. Voit luoda liitokset manuaalisesti kyselyissä, vaikka ne eivät edusta aiemmin määritettyjä yhteyksiä. Jos käytät muita kyselyjä (taulukoiden sijaan tai niiden lisäksi) kyselyn tietolähteinä, voit luoda liitokset lähdekyselyjen välille sekä näiden kyselyjen ja tietolähteinä lähteinä lähteiden välillä.

Liitokset käyttäytyvät samalla tavalla kuin kyselyehdot, koska ne laativat sääntöjä, jotka tietojen on vastattava kyselytoimintoja varten. Toisin kuin ehdot, liitokset määrittävät myös, että jokainen liitosehdot täyttävä rivipari yhdistetään tietuesarjaan yhden rivin muodostamiseksi.

Liitoksia on neljää perustyyppiä: sisäliitokset, ulkoliitokset, ristiliitokset ja erisnyiset liitokset. Tässä artikkelissa tutustutaan kuhunkin liitostyyppiin, miksi käytät kutakin tyyppiä ja miten voit luoda liitokset.

Liitokset ovat kyselyjä, jotka ovat taulukoiden välisiä suhteita: kahden lähteen tietoja voidaan yhdistää niiden yhteisten tietoarvojen perusteella. Seuraavassa on kuva liitoksesta kyselyn rakennenäkymässä, jossa liitoksen ominaisuudet ovat avoinna valintaikkunassa:

Liitoksen ominaisuudet -ruutu.

Tämä taulukoiden välinen viiva edustaa liitosta. Avaa Liitoksen ominaisuudet -valintaikkuna kaksoisnapsauttamalla sitä ja tarkista tai muuta liitosta.

Liitokset ovat joskus suuntaa. Valintaikkunan tällä alueella näet, mikä taulukko on liitoksessa ja mitä kenttiä käytetään taulukoiden liitoksessa.

Tämä alue määrittää liitoksen tyypin: vaihtoehto 1 on sisäliitos, 2 on vasen ulkoliitos ja 3 on oikea ulkoliitos.

Molempien taulukoiden kenttiä voidaan käyttää, ja kuhunkin tehtävään liittyvät tiedot näytetään kustakin. Sisäliitoksessa ei sisällytetä muita tietoja. Ulkoliitoksessa myös yhden taulukon toisiinsa liittymättömät tietueet sisällytetään kyselyn tuloksiin.

Sivun alkuun

Liitosten tyypit

Liitoksia on neljää perustyyppiä: sisäliitokset, ulkoliitokset, ristiliitokset ja erisnyiset liitokset. Ristiliitokset ja erisnyiset liitokset ovat erikoisliitostyyppejä, ja niitä käytetään harvoin, mutta sinun kannattaa tietää, miten liitokset toimivat.

Sisäliitokset: vain yhdistettyjä tietoja molemmista taulukoista yhdistettyinä

Sisäliitos on sellainen, jossa Access sisällyttää tiedot taulukosta vain, jos liittyvässä taulukossa on vastaavia tietoja ja päinvastoin. Yleensä sisäliitokset ovat käytössä. Kun luot liitoksen etkä määritä liitosta, Access olettaa, että haluat sisäliitoksen. Sisäliitokset ovat hyödyllisiä, koska niiden avulla voit yhdistää kahden lähteen tietoja jaettujen arvojen perusteella, joten näet tiedot vain, kun kuva on valmis.

Ulkoliitokset: kaikki toisiinsa liittyvät tiedot on yhdistetty oikein ja kaikki loput tietueet yhdestä taulukosta

Ulkoliitos on kuin sisäliitos, mutta lisää loput rivit yhdestä taulukosta. Ulkoliitokset ovat suuntaavaa: vasen ulkoliitos sisältää kaikki tietueet vasemmalta taulukosta – liitoksen ensimmäisestä taulukosta – ja oikea ulkoliitos sisältää kaikki tietueet oikealta taulukosta – liitoksen toisesta taulukosta.

Täydelliset ulkoliitokset: kaikki tiedot yhdessä mahdollisuuksien mukaan

Joissakin järjestelmissä ulkoliitos voi sisältää kummankin taulukon kaikki rivit, ja rivit yhdistetään, kun ne vastaavat toisiaan. Tätä kutsutaan täydelliseksi ulkoliitokseksi, eikä Access nimenomaisesti tue niitä. Voit kuitenkin käyttää ristiliitosta ja ehtoja saman tehosteen saavuttamiseksi.

Ristiliitokset: kaikki tiedot yhdistetään kaikin mahdollisin tavoin

Useimmiten ristiliitos on sivutehoste, joka lisää kyselyyn kaksi taulukkoa ja unohtaa yhdistää ne. Access tulkitsee tämän tarkoittamaan sitä, että haluat nähdä kaikki yhden taulukon tietueet yhdessä toisen taulukon jokaisen tietueen kanssa – kaikki mahdolliset tietueiden yhdistelmät. Koska tietoja ei voi yhdistää, tämäntyyppinen liitos tuottaa harvoin hyödyllisiä tuloksia. Joissakin tapauksissa ristiliitos on kuitenkin juuri sitä, mitä tarvitset.

Eriarvoiset liitokset: tavallisen liitoksen tavoin, mutta rivien yhdistäminen eri vertailulla

Eristeet käyttävät muuta operaattoria kuin yhtäläisyysmerkkiä (=) arvojen vertailuun ja sen määrittämiseen, yhdistetäänkö tiedot ja miten ne yhdistetään. Eriarvoiset liitokset eivät ole nimenomaisesti tuettuja, mutta voit käyttää ristiliitosta ja ehtoja saman tehosteen saavuttamiseksi.

Näytä rivit, joilla on yhteinen arvo kummassakin yhdistetyssä taulukossa

Jos haluat näyttää vain ne rivit, joilla on toisiaan vastaavat arvot yhdistetyssä kentässä, käytä sisäliitosta. Access luo sisäliitokset automaattisesti.

Sisäliitokset ovat yleisin liitostyyppi. Ne kertovat kyselylle, että yhden yhdistetyn taulukon rivit vastaavat toisen taulukon rivejä liitettyjen kenttien tietojen perusteella. Kun sisäliitoksen kysely suoritetaan, kyselyihin sisällytetään vain rivit, joilla on yhteinen arvo kummassakin yhdistetyssä taulukossa.

Sisäliitoksen käyttö

Sisäliitoksen käyttö ei yleensä ole tarpeen. Jos kyselyyn lisätyillä taulukoilla on jo yhteyksiä, Access luo automaattisesti sisäliitoksen liittyvien taulukoiden välille, kun lisäät taulukot. Jos viite-eheys on käytössä, Access näyttää liitosviivan yläpuolella myös merkin 1, joka näyttää, mikä taulukko on yksi-moneen-yhteys:n "yksi"-puolella ja äärettömän symbolin(∞), joka näyttää, mikä taulukko on "monta"-puolella.

Vaikka et olisi luonut yhteyksiä, Access luo sisäliitokset automaattisesti, jos lisäät kyselyyn kaksi taulukkoa ja kussakin taulukossa on kenttä, jolla on sama tai yhteensopiva tietotyyppi, ja toinen liitoskentistä on perusavain. Yksi- ja Monta-merkit eivät näy tässä tapauksessa, koska viite-eheys ei ole pakotettu.

Jos lisäät kyselyjä kyselyyn mutta et ole luonut yhteyksiä kyselyjen välille, Access ei luo automaattisesti sisäliitosta kyselyjen tai kyselyjen ja taulukoiden välille. Yleensä ne kannattaa luoda itse. Voit luoda sisäliitoksen vetämällä kentän tietolähteestä toisen tietolähteen kenttään. Access näyttää viivan molempien kenttien välillä liitoksen luomisen merkiksi.

Sisäliitoksen SQL-syntaksi

Sisäliitokset määritetään SQL:ssä FROM-lauseessa alla esitetyllä tavalla:

FROM taulukko1 INNER JOIN taulukko2 ON taulukko1.kenttä1 vertaa taulukkoa 2.kenttä2

INNER JOIN -toiminnossa on seuraavat osat:

Osa

Kuvaus

taulukko1, taulukko2

Niiden taulukkojen nimet, joista tietueet yhdistetään.

kenttä1, kenttä2

Yhdistettävien kenttien nimet. Jos ne eivät ole numeerisia, kenttien täytyy olla samaa tietotyyppi ja sisältää samantyyppisiä tietoja, mutta niiden ei tarvitse olla samannimisiä.

vertailu

Jokin seuraavista relaatiovertailuoperaattoreista: "=", "<", ">", "<=", ">=," tai "<>."

Lisätietoja sisäliitoksen syntaksista on ohjeaiheessa INNER JOIN -toiminto.

Sivun alkuun

Yhden taulukon kaikkien rivien ja vastaavien rivien näyttäminen toisia taulukoita vastaavista riveistä

Ulkoliitokset kertovat kyselylle, että vaikka jotkin liitoksen kummallakin puolella oleva rivi vastaavat täsmälleen toisiaan, kyselyn tulisi sisältää kaikki yhden taulukon rivit ja myös ne toisen taulukon rivit, joilla on yhteinen arvo liitoksen molemmilla puolilla.

Ulkoliitokset voivat olla vasenta ulkoliitosta tai oikea ulkoliitos. Vasemman ulkoliitoksen kysely sisältää kaikki SQL-lausekkeen FROM-lauseen ensimmäisen taulukon rivit ja vain ne toisen taulukon rivit, joissa liitoskenttä sisältää molempien taulukoiden yhteisiä arvoja. Oikean ulkoliitoksen kysely sisältää kaikki SQL-lausekkeen FROM-lauseen toisen taulukon rivit ja vain ne rivit toisesta taulukosta, jossa liitoskenttä sisältää molempien taulukoiden yhteisiä arvoja.

Huomautus: Liitoksen vasemmanpuoleinen taulukko tai oikeanpuoleinen taulukko on helppo erottaa kaksoisnapsauttamalla liitosta ja katsomalla sitten Liitoksen ominaisuudet -valintaikkunaa. Voit myös siirtyä SQL-näkymään ja tarkastella SITTEN FROM-lausetta.

Koska joillakin ulkoliitoksen toisella puolella riveillä ei ole vastaavia rivejä toisia taulukoita, jotkin kyselyssä palautetut kentät ovat kyseisen toisen taulukon tuloksia tyhjiä, jos rivit eivät vastaa toisiaan.

Ulkoliitoksen käyttö

Voit luoda ulkoliitoksen muokkaamalla aiemmin luotua sisäliitosta. Jos sisäliitosta ei ole, luot sellaisen ja muutat sen sitten ulkoliitokseksi.

Sisäliitoksen muuttaminen ulkoliitokseksi

  1. Kaksoisnapsauta kyselyn rakennenäkymässä liitosta, jota haluat muuttaa.

    Näyttöön tulee Liitoksen ominaisuudet -valintaikkuna.

  2. Huomaa Liitoksen ominaisuudet -valintaikkunassa vaihtoehdot, jotka näkyvät vaihtoehdon 2 ja vaihtoehdon 3 vieressä.

  3. Napsauta vaihtoehtoa, jota haluat käyttää, ja valitse sitten OK.

  4. Access näyttää liitoksen ja nuolen, joka osoittaa tietolähteestä, johon kaikki rivit sisällytetään tietolähteeseen, johon sisällytetään vain ne rivit, jotka täyttävät liitoksen ehdon.

Monitulkintaiset ulkoliitokset

Jos luot KYSELYN, joka sisältää LEFT JOIN-liitoksen ja INNER JOIN -liitoksen, Access ei ehkä pysty määrittämään ensin suoritettavaa liitostoimintoa. Koska tulokset ovat erilaisia sen mukaan, suoritetaanko vasen liitos vai sisäliitos ensin, Access näyttää virhesanoman:

Voit korjata tämän virheen muokkaamalla kyselyä niin, että ensin suoritettava liitos on selvä.

Ulkoliitoksen SQL-syntaksi

Ulkoliitokset määritetään SQL:ssä FROM-lauseessa alla esitetyllä tavalla:

FROM-taulukko1 [ VASEN | RIGHT ] JOIN table2
ON table1.field1 compare table2.field2

LEFT JOIN- ja RIGHT JOIN -toiminnoissa on seuraavat osat:

Osa

Kuvaus

taulukko1, taulukko2

Niiden taulukkojen nimet, joista tietueet yhdistetään.

kenttä1, kenttä2

Yhdistettävien kenttien nimet. Kenttien täytyy olla samaa tietotyyppi ja sisältää samantyyppisiä tietoja, mutta niiden ei tarvitse olla samannimisiä.

vertailu

Jokin seuraavista relaatiovertailuoperaattoreista: "=", "<", ">", "<=", ">=," tai "<>."

Lisätietoja ulkoliitoksen syntaksista on ohjeaiheessa LEFT JOIN ja RIGHT JOIN Operations.

Sivun alkuun

Näytä kaikki rivit molemmista taulukoista ja yhdistä ne, kun yhteinen arvo on olemassa

Kun haluat näyttää kaikki rivit kahdesta taulukosta ja liittää ne yhteisten arvojen perusteella, käytä koko ulkoliitosta. Access ei nimenomaisesti tue täysiä ulkoliitosta, mutta voit saada saman tehosteen käyttämällä yhteyskyselyä. Seuraavassa kerrotaan, miten voit tehdä tämän, mutta jos haluat lisätietoja yhdistäminenkyselyistä, katso lisätietoja Katso myös -osiosta.

Voit suorittaa täyden ulkoliitoksen käyttämällä union queryä:

  1. Luo kysely, jossa on vasen ulkoliitos kenttään, jota haluat käyttää täydellisessä ulkoliitoksessa.

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

  3. Kopioi SQL-koodi painamalla näppäinyhdistelmää CTRL+C.

  4. Poista FROM-lauseen lopussa puolipiste ja paina sitten ENTER-näppäintä.

  5. Kirjoita UNION ja paina sitten Enteriä.

    Huomautus: Älä käytä ALL-avainsanaa, kun suoritat täyden ulkoliitoksen käyttämällä kyselyä.

  6. Liitä vaiheessa 3 kopioitu SQL-koodi painamalla näppäinyhdistelmää CTRL+V.

  7. Vaihda liittämissäsi koodissa LEFT JOIN RIGHT JOIN -liitokseksi.

  8. Poista puolipiste toisen FROM-lauseen lopussa ja paina sitten ENTER-näppäintä.

  9. Lisää WHERE-lause, joka määrittää, että liitoskentän arvo on NULL from-lauseen (vasemmanpuoleinen taulukko) ensimmäisessä taulukossa.

    Jos FROM-lause on esimerkiksi:

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

    Lisää seuraava WHERE-lause:

    WHERE Products.ID IS NULL

  10. Kirjoita puolipiste (;) WHERE-lausekkeen loppuun, joka osoittaa liittokyselyn lopun.

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

Ristiliitokset

Ristiliitokset ovat erilaisia kuin sisä- ja ulkoliitokset, sillä niitä ei ole erikseen esitetty Access. Ristiliitoksessa taulukon jokainen rivi yhdistetään toisen taulukon jokaiseen riviin, jolloin tuloksena on ristituote tai karteesilainen tuote. Aina kun suoritat kyselyn, jossa on taulukoita, joita ei ole erikseen liitetty, tuloksena on tuotteidenvälinen tulos. Ristiliitokset ovat yleensä tahattomia, mutta joissakin tapauksissa ne voivat olla hyödyllisiä.

Miksi ristiliitosta käytetään?

Jos haluat tarkastella kaikkia mahdollisia rivien yhdistelmiä kahden taulukon tai kyselyn välillä, käytä ristiliitosta. Oletetaan esimerkiksi, että yritykselläsi on ollut upea vuosi, ja harkitset hyvityksiä asiakkaillesi. Voit luoda kyselyn, joka summaa kunkin asiakkaan ostot, luoda pienen taulukon, jossa on useita mahdollisia hyvitysprosentteja, ja yhdistää nämä kaksi toisessa kyselyssä, joka suorittaa ristiliitoksen. Näkyviin tulee kysely, joka näyttää joukon hypoteettisia hyvityksiä kullekin asiakkaalle.

Ristiliitoksen käyttö

Ristiliitos luodaan aina, kun sisällytät kyselyyn taulukoita tai kyselyjä, mutta et luo kullekin taulukolle tai kyselylle vähintään yhtä eksplisiittistä liitosta. Access yhdistää jokaisen taulukon tai kyselyn jokaisen rivin, jota ei ole erikseen liitetty mihinkään muuhun taulukkoon tai kyselyyn, tulosten joka toiselle riville. Ota huomioon edellisen kappaleen hyvitysskenaario. Oletetaan, että sinulla on 91 asiakasta ja haluat tarkastella viittä mahdollista hyvitysprosenttia. Ristiliitos tuottaa 455 riviä (91 ja 5 tuotetta).

Tahaton ristiliitos voi luoda kyselytuloksiin valtavan määrän rivejä. Lisäksi nämä tulokset ovat yleensä merkityksettömiä, koska jos et aio yhdistää jokaista riviä joka toisen rivin kanssa, suurin osa tuloksissa näkyvistä yhdistetyistä riveistä ei ole järkevää. Lisäksi tahattomia ristiliitosta käyttävät kyselyt voivat kestää hyvin kauan.

Tahaton ristiliitos kyselyn rakennenäkymässä

1. Ympyröivät kentät tulee yhdistää toisiinsa.

Tahattoman ristitulon tulos

1. Huomaa, että tietueita on hyvin paljon.

Korjattu kyselyn tulos

1. Huomaa, että tietueiden määrä on paljon pienempi.

Sivun alkuun

Taulukoiden liittyminen kenttäarvojen eriarvoisuuden perusteella

Liitosten ei tarvitse perustua liitettyjen kenttien vastaavuudesta. Liitos voi perustua mihin tahansa vertailuoperaattoriin, kuten suurempi kuin (>), pienempi kuin (<) tai ei ole yhtä suuri (<>). Liitoksia, jotka eivät perustu vastaavumiseen, kutsutaan eriarvoiksi liitoksiksi.

Jos haluat yhdistää kahden tietolähteen rivit kenttien arvojen perusteella, jotka eivät ole yhtä suuret, käytä erisnyistä liitosta. Yleensä eriarvoiset liitokset perustuvat joko suurempiin (>), pienempiin (<), suurempiin tai yhtä suuriin (>=) tai pienempiin tai yhtä suuriin (<=) vertailuoperaattoreihin. Eriarvoiset liitokset, jotka perustuvat eriarvoiseen (<>) -operaattoriin, voivat palauttaa lähes yhtä monta riviä kuin ristiliitokset, ja tuloksia voi olla vaikea tulkita.

Erisnyisen liitoksen käyttö

Eriarvoiset liitokset eivät ole tuettuja rakennenäkymässä. Jos haluat käyttää niitä, sinun on tehtävä se SQL-näkymässä. Voit kuitenkin luoda liitoksen rakennenäkymässä, siirtyä SQL-näkymään, etsiä yhtä suuri kuin - (=) -vertailuoperaattorin ja muuttaa sen operaattoriksi, jota haluat käyttää. Tämän jälkeen voit avata kyselyn rakennenäkymässä uudelleen vain, jos ensin muutat vertailuoperaattorin takaisin yhtä suuriksi (=) SQL-näkymässä.

Liitoksen poistaminen

Jos Access luo automaattisesti liitoksen, jota et halua, tai jos luot liitoksen vahingossa – esimerkiksi kahden eri tietotyyppiä erottavan kentän välille – voit poistaa liitoksen.

  1. Valitse kyselyn rakenneruudukossa liitos, jonka haluat poistaa.

  2. Paina DELETE-näppäintä.

-tai-

  • Napsauta kyselyn rakenneruudukossa hiiren kakkospainikkeella poistettavaa liitosta ja valitse sitten Poista.

Sivun alkuun

Katso myös

Tietueiden lisääminen

avulla

luominen,

Tarvitsetko lisäohjeita?

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

Oliko näistä tiedoista hyötyä?

×