Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

Tässä artikkelissa käsitellään erilaisia liitoksia ja näytetään, miten niitä käytetään kyselyssä. Liitos luodaan oletusarvoisesti automaattisesti, jos kahden kyselyssä käytettävän tietolähteen välillä on jo yhteys. Liitos luodaan myös, jos on olemassa kenttiä, jotka vastaavat selkeästi toisiaan. Voit poistaa automaattisesti luodun liiton. Tässä artikkelissa on perustietoja taulukoiden yhteyksistä, kuten niiden luomisesta.

Huomautus: Voit liittää kyselyjä samalla tavalla kuin taulukoita, ja voit myös liittyä molempiin.

Tämän artikkelin sisältö

Yleistä

Tietokanta on kokoelma tietotaulukoita, joilla on loogiset suhteet toisiinsa. Yhteyksien avulla voit yhdistää taulukot niiden yhteisten kenttien mukaan. Taulukko voi olla osa mitä tahansa yhteyksien määrää, mutta jokaisessa yhteydessä on aina täsmälleen kaksi taulukkoa. Kyselyssä yhteys esitetään liitoksilla.

Kun lisäät kyselyyn taulukoita, Access luo liitoksia, jotka perustuvat taulukoiden välille määritettyihin yhteyksiin. Voit luoda liitoksia manuaalisesti kyselyissä, vaikka ne eivät edusta jo määritettyjä yhteyksiä. Jos käytät kyselyn tietolähteinä muita kyselyjä (taulukoiden sijaan tai niiden lisäksi), voit luoda liitoksia lähdekyselyjen välille sekä kyselyjen ja tietolähteinä käyttämiesi taulukoiden välille.

Liitokset toimivat samalla tavalla kuin kyselyn ehdot, sillä ne määrittävät sääntöjä, jotka tietojen on vastattava, jotta ne voidaan sisällyttää kyselytoimintoihin. Toisin kuin ehdot, liitokset määrittävät myös, että jokainen liitosehtoja täyttäva rivipari yhdistetään tietuejoukkoon yhden rivin muodostamiseksi.

Liitoksia on neljä perustyyppiä: sisäliitokset, ulkoliitokset, ristiliitokset ja epätasa-arvoiset liitokset. Tässä artikkelissa käsitellään kutakin käytettävissä olevaa liitostyyppiä, sitä, miksi käytät kutakin tyyppiä ja miten liitoksia luodaan.

Liitokset ovat kyselyitä siitä, mitä yhteydet ovat taulukoihin: osoitus siitä, miten kahden lähteen tietoja voidaan yhdistää niiden yhteisten tietoarvojen perusteella. Tässä on kuva liitosta kyselyn rakennenäkymässä, jossa liitoksen ominaisuudet avautuvat valintaikkunassa:

Liitoksen ominaisuudet -ruutu.

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

Liitokset ovat joskus suuntaa-asetteita. Valintaikkunan tällä alueella näkyy, mikä taulukko liitoksena on ja mitä kenttiä käytetään taulukoiden liittämiseen.

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 kustakin tehtävästä näytetään tiettyyn tehtävään liittyvät tiedot. Sisäliitokseen ei sisällytetä muita tietoja. Ulkoliitos sisältää myös yhden taulukon toisiinsa liittymättömät tietueet.

Sivun alkuun

Liitosten tyypit

Liitoksia on neljä perustyyppiä: sisäliitokset, ulkoliitokset, ristiliitokset ja epätasa-arvoiset liitokset. Ristiliitokset ja epätasa-arvoiset liitokset ovat kehittyneitä liitostyyppejä, ja niitä käytetään harvoin, mutta niistä kannattaa tietää, jotta ymmärrät täysin, miten liitokset toimivat.

Sisäliitokset: vain yhdistetyt tiedot molemmista taulukoista

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

Ulkoliitokset: kaikki liittyvät tiedot on yhdistetty oikein sekä kaikki jäljellä olevat tietueet yhdestä taulukosta

Ulkoliitos on kuin sisäliitos, mutta lisää loput rivit yhdestä taulukosta. Ulkoliitokset ovat suuntaliitoksia: vasen ulkoliitos sisältää kaikki vasemmanpuoleisen taulukon tietueet – liitostaulukon ensimmäisen taulukon – ja oikea ulkoliitos sisältää kaikki oikeanpuoleisen taulukon tietueet – liitostaulukon toisen taulukon.

Täydet ulkoliitokset: kaikki tiedot yhdistettynä mahdollisuuksien mukaan

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

Ristiliitokset: kaikki tiedot, yhdistetty kaikin mahdollisin tavoin

Useimmiten ristiliitos on sivuvaikutus, kun kyselyyn lisätään kaksi taulukkoa ja sitten unohdetaan niiden liittäminen. Access tulkitsee tämän siten, että haluat nähdä kaikki tietueet yhdestä taulukosta yhdistettynä toisen taulukon jokaiseen tietueeseen – kaikkiin mahdollisiin tietueyhdistelmiin. Koska tietoja ei voi yhdistää, tällainen liitos tuottaa harvoin hyödyllisiä tuloksia. On kuitenkin muutamia tapauksia, joissa ristiliitos on juuri sitä, mitä tarvitset.

Epätasa-arvoiset liitokset: kuten tavallinen liitos, mutta eri vertailun käyttäminen rivien yhdistämiseen

Epätasa-arvoiset liitokset 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. Epätasa-arvoisia liitoksia ei tueta eksplisiittisesti, mutta voit käyttää ristiliitosta ja ehtoja saman tehosteen saavuttamiseksi.

Näytä rivit, joilla on yhteinen arvo molemmissa yhdistetyissä taulukoissa

Jos haluat näyttää vain ne rivit, joilla on vastaavat arvot liitetyssä 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 kysely, jossa on sisäliitos, suoritetaan, kyselytoimintoihin sisällytetään vain ne rivit, joilla on yhteinen arvo kummassakin liitetyssä taulukossa.

Ohjevalikko käyttää sisäliitosta?

Useimmiten sinun ei tarvitse tehdä mitään sisäliitoksen käyttämiseksi. Jos kyselyyn lisätyillä taulukoilla on jo yhteyksiä, Access luo automaattisesti sisäliitoksen kunkin toisiinsa liittyvän taulukkoparin välille, kun lisäät taulukot. Jos viite-eheys on käytössä, Access näyttää myös liitosviivan yläpuolella "1", joka näyttää, mikä taulukko on yksi-moneen-yhteys "yksi"-puolella, ja äärettömän symbolin (), joka näyttää, mikä taulukko on "monta"-puolella.

Vaikka et olisi luonut yhteyksiä, Access luo automaattisesti sisäliitokset, jos lisäät kyselyyn kaksi taulukkoa ja kummassakin taulukossa on kenttä, jonka tietotyyppi on sama tai yhteensopiva, ja yksi liitoskentistä on perusavain. Tässä tapauksessa yksi- ja monta-merkkejä ei näytetä, koska viite-eheyttä ei ole pakotettu.

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

Sisäliitosten SQL-syntaksi

Sisäliitokset on määritetty SQL:ssä FROM-lauseessa alla esitetyllä tavalla:

FROM taulukko1 INNER JOIN taulukko2 ON taulukko1.kenttä1 vertaa taulukkoa2.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äliitosten syntaksista on ohjeaiheessa INNER JOIN Operation.

Sivun alkuun

Näyttää kaikki rivit yhdestä taulukosta ja vastaavat rivit toisesta taulukosta

Ulkoliitokset kertovat kyselylle, että vaikka jotkin liitoksen molemmilla puolilla olevat rivit vastaavat täsmälleen toisiaan, kyselyn tulisi sisältää kaikki rivit yhdestä taulukosta ja myös toisen taulukon rivit, joilla on yhteinen arvo liitoksen molemmilla puolilla.

Ulkoliitokset voidaan jättää ulkoliitoksiksi tai ne voivat olla oikeita ulkoliitoksia. Vasemman ulkoliitoksen kysely sisältää kaikki SQL-lausekkeen FROM-lauseen ensimmäisen taulukon rivit ja vain ne rivit toisesta taulukosta, jossa liitoskenttä sisältää molemmille taulukoille 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ää molemmille taulukoille yhteisiä arvoja.

Huomautus: Voit helposti tarkistaa, mikä taulukko on tietyn liitoksen vasemmanpuoleinen taulukko tai oikea taulukko, kaksoisnapsauttamalla liitosta ja katsomalla sitten Liitoksen ominaisuudet -valintaikkunaa. Voit myös siirtyä SQL-näkymään ja tarkastella from-lausetta.

Koska joillakin ulomman liitoksen toisella puolella riveillä ei ole vastaavia rivejä toisesta taulukosta, jotkin kyselyn toisen taulukon palauttamista kentistä ovat tyhjiä, kun rivit eivät vastaa toisiaan.

Ohjevalikko käyttää ulkoliitosta?

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

Sisäliitoksen muuttaminen ulkoliitokseen

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

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

  2. Huomaa Liitoksen ominaisuudet -valintaikkunassa vaihtoehdon 2 ja vaihtoehdon 3 vieressä olevat vaihtoehdot.

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

  4. Access näyttää liitokset ja näyttää nuolen, joka osoittaa tietolähteestä, johon kaikki rivit sisällytetään tietolähteeseen, johon sisällytetään vain liitosehdon täyttävät rivit.

Monitulkintaiset ulkoliitokset

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

Jos haluat korjata tämän virheen, sinun on muokattava kyselyä niin, että on selvää, mikä liitos suoritetaan ensin.

Ulomman liitosten SQL-syntaksi

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

FROM taulukko1 [ LEFT | OIKEA ] JOIN taulukko2ON 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 ulkoliitossyntaksista on artikkelissa LEFT JOIN, RIGHT JOIN Operations.

Sivun alkuun

Näytä molempien taulukoiden kaikki rivit ja liitä ne siihen, missä yhteinen arvo on

Kun haluat näyttää kahden taulukon kaikki rivit ja liittää ne yhteisten arvojen perusteella, käytä täyttä ulkoliitosta. Access ei nimenomaisesti tue täysiä ulkoliitoksia, mutta voit saavuttaa saman vaikutuksen yhdistämiskyselyn avulla. Seuraavassa kerrotaan, miten tämä tehdään, mutta jos haluat lisätietoja yhdistämiskyselyistä, tutustu Katso myös -osioon.

Jos haluat käyttää yhdistämiskyselyä täyden ulkoliitokseen:

  1. Luo kysely, jonka kentässä on vasen ulkoliitos, jota haluat käyttää täyteen ulkoliitokseen.

  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 oleva puolipiste ja paina sitten ENTER-näppäintä.

  5. Kirjoita UNION ja paina sitten Enteriä.

    Huomautus: Älä käytä ALL-avainsanaa, kun käytät yhdistämiskyselyä täyden ulkoliitokseen.

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

  7. Muuta liitetyssä koodissa LEFT JOIN -toiminnoksi OIKEA LIITY.

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

  9. Lisää WHERE-lauseke, joka määrittää, että liitoskentän arvo on NULL FROM-lauseen (vasemmanpuoleisen taulukon) ensimmäisessä taulukossa.

    Jos from-lause on esimerkiksi seuraava:

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

    Lisäisit seuraavan WHERE-lauseen:

    WHERE Products.ID IS NULL

  10. Kirjoita where-lauseen loppuun puolipiste (;), joka ilmaisee yhdistämiskyselyn lopun.

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

Ristiliitokset

Ristiliitokset poikkeavat sisä- ja ulkoliitoksista siinä, että ne eivät ole nimenomaisesti edustettuina Access. Ristiliitokseen yhden taulukon jokainen rivi yhdistetään toisen taulukon jokaiseen riviin, mikä johtaa niin sanottuun ristituotteeseen tai kartesian tuotteeseen. Kun suoritat kyselyn, jossa on taulukoita, joita ei ole nimenomaisesti liitetty, tuloksena on tuoteristiriita. Ristiliitokset ovat yleensä tahattomia, mutta joissakin tapauksissa niistä voi olla hyötyä.

Miksi käyttäisin ristiliitosta?

Jos haluat tarkastella kaikkia kahden taulukon tai kyselyn välisiä riviyhdistelmiä, käytä ristiliitosta. Oletetaan esimerkiksi, että yritykselläsi on ollut upea vuosi, ja harkitset hyvityksiä asiakkaillesi. Voit luoda kyselyn, joka laskee yhteen kunkin asiakkaan ostot, luo pienen taulukon, jossa on useita mahdollisia hyvitysprosentteja, ja yhdistää nämä kaksi toisessa kyselyssä, joka suorittaa ristiliitoksen. Päädyt kyselyyn, joka näyttää joukon hypoteettisia alennuksia kullekin asiakkaalle.

Ohjevalikko käyttää ristiliitosta?

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

Kuten arvata saattaa, tahattomat ristiliitokset voivat luoda kyselytuloksiin valtavan määrän rivejä. Lisäksi nämä tulokset ovat yleensä merkityksettömiä, koska jos et itse asiassa aio yhdistää jokaista riviä kaikkiin muihin riveihin, useimmat yhdistetyt rivit, jotka näkyvät tuloksissa, eivät ole järkeviä. Lisäksi tahattomia ristiliitoksia käyttävien kyselyjen suorittaminen voi kestää hyvin kauan.

Tahaton ristiliitos kyselyn rakennenäkymässä

1. Ympyröityjen kenttien on liityttävä 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 liittäminen kenttien arvojen epätasa-arvon perusteella

Liitosten ei tarvitse perustua liitettyjen kenttien vastaavuuteen . Liitos voi perustua mihin tahansa vertailuoperaattoriin, kuten suurempi kuin (>), pienempi kuin (<) tai ei ole yhtä suuri (<>). Liitoksia, jotka eivät perustu vastaavuuteen, kutsutaan epätasa-arvoisille liitoksille.

Jos haluat yhdistää kahden tietolähteen rivit niiden kenttien arvojen perusteella, jotka eivät ole yhtä suuria, käytä epätasa-arvoista liitosta. Yleensä epätasa-arvoiset liitokset perustuvat joko suurempiin kuin (>), pienempiin kuin (<), suurempi tai yhtä suuri kuin (>=) tai pienempi tai yhtä suuri kuin (<=) vertailuoperaattorit. Epätasa-arvoiset liitokset, jotka perustuvat ei ole yhtä suuri (<>) -operaattoriin, voivat palauttaa lähes yhtä monta riviä kuin ristiliitokset, ja tuloksia voi olla vaikea tulkita.

Ohjevalikko käyttää epätasa-arvoista liitosta?

Epätasa-arvoisia liitoksia ei tueta rakennenäkymässä. Jos haluat käyttää niitä, sinun on tehtävä se KÄYTTÄMÄLLÄ SQL-näkymää. Voit kuitenkin luoda liitoksen rakennenäkymässä, siirtyä SQL-näkymään, etsiä yhtäläisyysvertailuoperaattorin (=) ja vaihtaa sen operaattoriksi, jota haluat käyttää. Tämän jälkeen voit avata kyselyn rakennenäkymässä vain, jos muutat ensin vertailuoperaattorin takaisin samaksi (=) SQL-näkymässä.

Liitouksen poistaminen

Jos Access luo automaattisesti liitoksen, jota et halua, tai jos luot liitoksen vahingossa , esimerkiksi liitoksen kahden kentän välille, joiden tietotyypit ovat erilaiset, voit poistaa liitoksen.

  1. Napsauta kyselyn rakenneruudukossa liitosta, jonka haluat poistaa.

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

-tai-

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

Sivun alkuun

Tietueiden lisääminen taulukkoon liittämiskyselyn avulla

Useiden valintakyselyjen tulosten yhdistäminen yhdistämiskyselyn avulla

Useaan taulukkoon perustuvan kyselyn luominen

Yhteyden luominen, muokkaaminen tai poistaminen

Tarvitsetko lisäohjeita?

Haluatko lisää vaihtoehtoja?

Tutustu tilausetuihin, selaa harjoituskursseja, opi suojaamaan laitteesi ja paljon muuta.

Osallistumalla yhteisöihin voit kysyä kysymyksiä ja vastata niihin, antaa palautetta sekä kuulla lisää asiantuntijoilta, joilla on runsaasti tietoa.