Tabelite ja päringute ühendamine

Tabelite ja päringute ühendamine

Kui lisate Accessi päringusse mitu andmeallikat, saate kasutada ühendusi, et piirata kirjeid, mida soovite vaadata, vastavalt sellele, kuidas andmeallikad on üksteisega seotud. Samuti saate ühendusi kasutada nii andmeallikatest kirjete kombineerimiseks, nii et iga allikate kirjete kirjed muutuvad Päringu tulemites üheks kirjeks.

Selles artiklis käsitletakse eri tüüpi ühendusi ja näidatakse, kuidas neid päringus kasutada. Vaikimisi luuakse ühendus automaatselt, kui on juba olemas seos kahe andmeallika vahel, mida soovite päringus kasutada. Ühendus luuakse ka siis, kui on olemas väljad, mis vastavad üksteisele selgelt. Saate automaatselt loodud liitumise kustutada. Selles artiklis antakse põhiteave tabeli seoste kohta (sh selle loomise kohta).

Märkus.: Saate päringuid ühendada samamoodi, kui liitute tabelite abil, ning saate liituda ka mõlemaga.

Selle artikli teemad

Overview

Andmebaas on andmete tabelite kogum, mis kannavad omavahel loogilisi seoseid. Seoste abil saate tabeleid ühiste väljade alusel ühendada. Tabel võib olla osa mis tahes seoste arvust, kuid igal seosel on alati täpselt kaks tabelit. Päringus esindab seost ühendus.

Kui lisate päringusse tabeleid, loob Access ühendused, mis põhinevad tabelite vahel määratletud suhetel. Päringutes saate ühendusi käsitsi luua ka siis, kui need ei kujuta juba määratletud seoseid. Kui kasutate päringu andmete allikatena muid päringuid (selle asemel või lisaks tabelitele), saate luua ühendusi päringute allikate vahel ja ka nende päringute ja tabelite vahel, mida te andmeallikana kasutate.

Ühendused käituvad sarnaselt päringu kriteeriumidega, et nad kehtestaksid reeglid, millele andmed peavad vastama, et need päringu toimingutesse kaasata. Vastupidiselt kriteeriumitele täpsustavad ühendused ka seda, et iga rida, mis vastab liitumise tingimustele, ühendatakse kirjekomplektis ühe rea moodustamiseks.

Ühendused on neli peamist tüüpi: sise-ühendused, välised ühendused, piiriülesed ühendused ja ebavõrdsed ühendused. Selles artiklis käsitletakse iga tüüpi Liitu, mida saate kasutada, miks te igat tüüpi kasutate, ja kuidas ühendusi luua.

Ühendused on seotud päringutega, mis seosed on tabelite jaoks: märge selle kohta, kuidas kahe allika andmeid saab kombineerida andmete põhjal, millel neil on ühised väärtused. Siin on näide päringu kujundusvaates liitumisest, kus dialoogiboksis olevad atribuudid on avatud järgmises dialoogiboksis.

Dialoogiboks Ühenduse atribuudid

See rida tabelite vahel esindab Liitu. Topeltklõpsake Liitu, et avada dialoogiboks atribuutide ühendamine (kujutatud), vaadata või muuta Liitu.

Ühendused on mõnikord suunatud. Dialoogiboksi selles jaotises kuvatakse, millisesse tabelisse soovite liituda, ja milliseid välju kasutatakse tabelitega liitumiseks.

See ala määrab liitumise tüübi: variant 1 on sisemine ühendus, 2 on vasakpoolne väline ühendus ja 3 on parempoolne väline ühendus.

Mõlema tabeli välju saab kasutada ja iga toimingu kohta kuvatakse andmed, mis on seotud antud ülesandega. Sisemine ühendus ei sisalda muid andmeid. Välisel ühendamisel kaasatakse päringu tulemisse ka ühe tabeli mitteseotud kirjed.

Lehe algusse

Ühenduste tüübid

Ühendused on neli peamist tüüpi: sise-ühendused, välised ühendused, piiriülesed ühendused ja ebavõrdsed ühendused. Piiriülesed ühendused ja ebavõrdsed ühendused on täiustatud ühendamise tüübid ja neid kasutatakse harva, kuid peaksite teadma, kuidas liitude töö täielikult mõista.

Sisemised ühendused: ainult mõlema tabeli seostuvad andmed

Sisemine ühendus on üks, kus Access sisaldab ainult tabeli andmeid, kui Seostuv tabel sisaldab vastavaid andmeid ja vastupidi. Enamus ajast kasutatakse sisemisi ühendusi. Kui loote ühenduse ja ei täpsusta, millist tüüpi Liitu see tähendab, eeldab Access, et soovite sisemist ühendust. Sisemised ühendused on kasulikud, sest need võimaldavad kombineerida kahe allika andmeid, mis põhinevad ühiskasutatavatel väärtustel, nii et näete andmeid ainult siis, kui on olemas kogu pilt.

Välised ühendused: kõik seostuvad andmed on õigesti ühendatud ning kõik ülejäänud kirjed ühest tabelist

Väline ühendus on nagu sisemine ühendus, kuid liidab ülejäänud read ühest tabelist. Välised ühendused on suunatud: vasakpoolne väline ühendus sisaldab kõiki vasakpoolses tabelis olevaid kirjeid – esimene tabel liitumiseks – ja parempoolne väline ühendus sisaldab kõiki kirjeid parempoolsest tabelist – teise tabeli ühendamine.

Täielikud välised ühendused: kõik andmed koos võimaluse korral

Mõnes süsteemis võib väline ühendamine hõlmata kõiki ridu mõlemast tabelist, kui need vastavad koos ridadega. Seda nimetatakse täielikuks väliseks ühendamiseks ja Access ei toeta neid otseselt. Sama efekti saavutamiseks saate kasutada ka risti ühendust ja kriteeriume.

Risti ühendused: kõik andmed, mis on igal võimalikul viisil ühendatud

Suurema osa ajast on piiriülese liitumise kõrvalmõjuks kahe tabeli lisamine päringule ja seejärel unustatakse nendega liitumine. Access tõlgendab seda, mis tähendab, et soovite näha iga ühe tabeli kirjet koos iga kirjega teisest tabelist – iga võimalikku kirjete kombinatsiooni. Kuna andmeid ei saa kombineerida, loob selline liitumine harva kasulikke tulemeid. Kuid on olemas mitu juhtumit, kui risti liitumine on just see, mida vajad.

Ebavõrdsed ühendused: sarnaselt tavalisele liitumisele, kuid ridade kombineerimiseks teistsuguse võrdluse abil

Ebavõrdsed ühendused kasutage väärtuste võrdlemiseks tehtemärki, mis pole võrdusmärk (=), ja määratlege, kas ja kuidas andmeid kombineerida. Ebavõrdsed ühendused pole selgesõnaliselt toetatud, kuid saate sama efekti saavutamiseks kasutada risti ühendust ja kriteeriume.

Ridade kuvamine, kus mõlemas ühendatud tabelis on levinud väärtus

Kui soovite kuvada ainult need read, millel on ühendatud väljal vastendatud väärtused, kasutage sisemist ühendust. Access loob sisemised ühendused automaatselt.

Sisemised ühendamised on kõige levinumat tüüpi ühendamised. Nad ütlevad päringule, et ühe ühendatud tabeli read vastavad ühendatud väljade andmete põhjal teise tabeli ridadele. Kui sisemise ühendusega päringut käitatakse, kaasatakse päringu toimingutesse ainult need read, kus mõlemas ühendatud tabelis on levinud väärtus.

Kuidas kasutada sisemist ühendust?

Enamuse ajast ei pea te sisemise liitumise kasutamiseks midagi tegema. Kui päringule lisatavatel tabelitel on juba seosed, loob Access tabelite lisamisel automaatselt sisemise liitumise iga seotud tabeli paari vahel. Kui jõustatakse viiteterviklus, kuvab Access ühendusejoone kohal arvu "1", et näidata, milline tabel asub üks-mitmele-seose poolel "üks", ja lõpmatuse sümboli () seose poolel "mitmele" asuva tabeli puhul.

Isegi kui te pole seoseid loonud, loob Access automaatselt sisemised ühendused, kui lisate päringusse kaks tabelit ja need tabelitel on iga väli, millel on sama või ühilduv andmetüüp, ning üks ühenduse väljadest on primaarvõti. Sel juhul ei kuvata "ühte" ja "mitut" sümbolit, sest viitamistervikluse pole jõustatud.

Kui lisate päringusse päringuid ja pole nende vahel seoseid loonud, ei loo Access nende päringute ega päringute ja tabelite vahel automaatselt sisemisi ühendusi. Üldiselt peaksite need ise looma. Sisemise liitumise loomiseks lohistage väli ühest andmeallikast teise andmeallika väljale. Access kuvab kahe välja vahel joone näitamaks, et ühendus on loodud.

Sisemise liitumise SQL-süntaks

SQL-is on sisemised ühendused määratud FROM-klauslis, nagu on näidatud allpool.

FROM tabel1 INNER JOIN tabel2 ON tabel1.Väli1 Võrdle Tabel2.väli2

Toiming INNER JOIN koosneb järgmistest osadest.

Osa

Kirjeldus

tabel1, tabel2

Nende tabelite nimed, mille kirjed liidetakse.

väli1, väli2

Ühendatavate väljade nimed. Kui need pole numbriväljad, peab väljadel olema sama andmetüüp ja need peavad sisaldama sarnaseid andmeid, kuid neil ei pea olema sama nimi.

compare

Suvaline relatsiooniline võrdlusmärk: "=", "<", ">", "<=", ">=" või "<>".

Lisateavet sisemise ühendusega süntaksi kohta leiate teemast sisemine liitumise toiming.

Lehe algusse

Kõigi ridade kuvamine ühest tabelist ja vastavatest ridadest teisest tabelist

Välised ühendused räägivad päringule, et kuigi mõned mõlemal poolel olevad read vastavad täpselt, peaks päring sisaldama kõiki ühe tabeli ridu ja ka teise tabeli ridu, mis jagavad ühist väärtust ühinemiseks mõlemal pool.

Välised ühendused võivad jätta välised ühendused või need võivad olla parempoolsed välised ühendused. Vasakpoolsel välisel ühendamisel sisaldab päring kõiki SQL-lause FROM-klausli esimese tabeli ridu ja ainult neid ridu, mis asuvad teisest tabelist, kus ühendav väli sisaldab mõlema tabeli väärtusi. Parempoolsel välisel ühendamisel kaasatakse päringusse kõik SQL-lause FROM-klausli teise tabeli read ja ainult need teise tabeli read, kus väli liitumine sisaldab mõlema tabeli väärtusi.

Märkus.: Saate hõlpsalt teada saada, milline tabel on vasakpoolsel tabelil või antud liitumise parempoolses tabelis, topeltklõpsates Liitu ja otsides seejärel dialoogiboksi atribuutide ühendamine . Saate ka aktiveerida SQL-vaate ja seejärel uurida FROM-klauslit.

Kuna mõnel välise ühenduse ühes servas oleval real pole vastavaid ridu teisest tabelist, on mõned päringu tulemid selle teise tabeli puhul tühjad, kui read ei vasta.

Kuidas kasutada välist ühendust?

Välise liitumise loomiseks saate muuta olemasolevat sisemist ühendust. Kui sisemist ühendust pole olemas, loote selle ja muudate selle väliseks ühendamiseks.

Sisemise ühenduse muutmine väliseks ühendamiseks

  1. Topeltklõpsake päringu kujundusvaates ühendust, mida soovite muuta.

    Kuvatakse dialoogiboks Ühendamisatribuudid.

  2. Märkige dialoogiboksis atribuutide ühendamine ruut valik 2 ja variant 3kõrval olevad Valikud.

  3. Klõpsake suvandit, mida soovite kasutada ja seejärel nuppu OK.

  4. Accessis kuvatakse ühendus ja kuvatakse nool, mis osutab andmeallikast, kus kõik read kaasatakse andmeallikasse, kus kaasatakse ainult need read, mis vastavad liitumise tingimustele.

Ebaselged välised ühendused

Kui loote päringut, mis sisaldab VASAKPOOLSEt ühendust ja SISEmist ühendust, ei pruugi Access määrata, milline liitumise toiming kõigepealt sooritada. Kuna tulemid on erinevad olenevalt sellest, kas vasakpoolne ühendus või sisemine ühendus sooritatakse, kuvatakse Accessis tõrketeade:

Selle vea parandamiseks peate päringut muutma nii, et oleks selge, milline ühendus kõigepealt sooritaks.

Välise liitumise SQL-süntaks

Välised ühendused on määratud FROM-klauslis, nagu on näidatud allpool.

Tabelilt [Left | RIGHT] Liitu Tabel2
tabelil tabeliga tabel. Väli1 Võrdle Tabel2. väli2

Toimingud LEFT JOIN ja RIGHT JOIN koosnevad järgmistest osadest.

Osa

Kirjeldus

tabel1, tabel2

Nende tabelite nimed, mille kirjed liidetakse.

väli1, väli2

Liidetavate väljade nimed. Väljadel peab olema sama andmetüüp ja need peavad sisaldama sarnaseid andmeid, kuid neil ei pea olema sama nimi.

compare

Suvaline relatsiooniline võrdlusmärk: "=", "<", ">", "<=", ">=" või "<>".

Lisateavet välise ühendamise süntaksi kohta leiate teemast Vasakpoolne liitumine, paremate toimingute ühendamine.

Lehe algusse

Mõlema tabeli kõigi ridade kuvamine ja nendega liitumine, kus on levinud väärtus

Kui soovite kuvada kõik kahe tabeli read ja liita need ühiste väärtuste põhjal, saate kasutada täielikku välisühendust. Access ei toeta otseselt väliseid ühendusi, kuid saate sama efekti saavutada ka liidu päringu abil. Järgmises toimingus selgitatakse, kuidas seda teha, aga kui soovite lisateavet Liidu päringute kohta, lugege jaotist Vt ka .

Täieliku välise ühendamise teostamiseks kasutage Liidu päringut.

  1. Looge päring, millel on väli väline ühendus, mida soovite kasutada täieliku välise ühenduse loomiseks.

  2. Klõpsake menüü Avaleht jaotise Vaated nuppu Vaade ning seejärel käsku SQL-i vaade.

  3. Vajutage SQL-koodi kopeerimiseks klahvikombinatsiooni CTRL + C.

  4. Kustutage klausli lõpust semikoolon ja vajutage sisestusklahvi (ENTER).

  5. Tippige UNION ja vajutage sisestusklahvi (ENTER).

    Märkus.: Ärge kasutage kõiki märksõnu, kui kasutate Liidu päringut täieliku välise liitumise sooritamiseks.

  6. Juhises 3 kopeeritud SQL-koodi kleepimiseks vajutage klahvikombinatsiooni CTRL + V.

  7. Kleepige kleebitud koodis vasakule, Liitugeparema ühendusega.

  8. Kustutage teise FROM-klausli lõpust semikoolon ja vajutage sisestusklahvi (ENTER).

  9. Lisage WHERE-klausel, mis määrab, et väljal FROM (vasakpoolne tabel) olevas tabelis on väärtus "Liitu" väärtuseks NULL.

    Kui FROM-klausel on näiteks järgmine:

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

    Lisage järgmine WHERE-klausel:

    WHERE Products.ID IS NULL

  10. Tippige semikoolon (;) WHERE-klausli lõpus, et määrata Liidu päringu lõpp.

  11. Klõpsake menüü Kujundus jaotises Tulemid nuppu Käivita.

Risti ühendused

Piiriülesed ühendused on erinevad sise-ja välisühendustest, kuna need ei ole Access selgesõnaliselt esindatud. Piiriülesel ühendamisel liidetakse iga rea ühest tabelist teise tabeli iga reaga, mille tulemusena on tegemist ristviite või ristkorrutis parameetri table1 tootega. Iga kord, kui käivitate päringu, millel on tabelid, mis pole otseselt liidetud, on tulemiks ristviide. Risti ühendused on tavaliselt tahtmatud, kuid on olemas juhtumid, kus need võivad olla kasulikud.

Miks peaksin kasutama risti ühendust?

Kui soovite uurida iga võimalikku ridade kombinatsiooni kahe tabeli või päringu vahel, kasutage risti ühendust. Oletame näiteks, et teie ärile on olnud suurejooneline aasta ja te kaalute oma klientidele hinnaalanduste andmist. Saate koostada päringu, mis liidab iga kliendi ostu, luua väikese tabeli, millel on mitu võimalikku hinnaalanduse protsenti, ja ühendada kaks teises päringus, mis sooritab piiriülese liitumise. Lõpetate päringuga, mis kuvab iga kliendi jaoks hüpoteetiline allahindluse kogumi.

Kuidas kasutada risti ühendust?

Iga kord, kui kaasate päringusse tabeleid või päringuid, ja ei loo iga tabeli või päringu jaoks vähemalt ühte otsest ühendust. Access ühendab iga rea igast tabelist või päringust, mis ei ole otseselt ühegi teise tabeli või päringuga ühegi teise rea tulemite jaoks ühendatud. Arvestage eelmise lõigu tagasimakse stsenaariumiga. Oletame, et teil on 91 klienti ja soovite vaadata viit võimalikku hinnaalandi protsenti. Sinu ristiga liitumine annab 455 rida (91 ja 5 toodet).

Võite ette kujutada, et tahtmatud piiriülesed ühendused võivad Päringu tulemites luua suurel hulgal ridu. Lisaks on need tulemid üldiselt mõttetud, sest kui te ei kavatse iga rida iga teise rea juures kombineerida, siis enamikes tulemites kuvatavad ühendatud read ei ole mõistlikud. Tahtmatuid piiriüleseid ühendusi kasutavad päringud võivad käitamiseks väga palju aega võtta.

Soovimatu ristühendus päringu kujundusvaates

1. circled väljad tuleks liita üksteisega.

Soovimatu risttoode

1. Pange tähele väga suurt arvu kirjeid.

Parandatud päringutulem

1. Pange tähele, et kirjete arv on palju väiksem.

Lehe algusse

Tabelite ühendamine väljaväärtuste ebavõrdsuse põhjal

Ühendused ei pea põhinema ühendatud väljade samaväärsusel . Liitumine võib põhineda mis tahes võrdluse tehtemärgil (nt suurem kui (>), väiksem kui (<) või pole võrdne (<>). Ühendused, mis ei põhine samaväärsusel, nimetatakse ebavõrdseks ühinemiseks.

Kui soovite kombineerida kahe andmeallika ridu, mis põhinevad väljaväärtustel, mis pole võrdsed, saate kasutada ebavõrdset ühendust. Tavaliselt põhinevad ebavõrdsed ühendused kas suurem kui (>), väiksem kui (<), mis on suurem või võrdne (>=) või väiksem või võrdne (<=) võrdluse tehtemärgid. Ebavõrdsed ühendused, mille aluseks on see, et see ei võrdu (<>), võib tagastada peaaegu sama palju ridu kui piiriülesed ühendused ja tulemusi on raske tõlgendada.

Kuidas kasutada ebavõrdset Liitu?

Kujundusvaade ei toeta ebavõrdseid ühendusi. Kui soovite neid kasutada, peate seda tegema SQL-i vaate abil. Kuid saate luua liitumise kujundusvaates, aktiveerida SQL-i vaate, leida vaste (=) võrdluse tehtemärk ja muuta selle operaatoriks, mida soovite kasutada. Pärast seda saate päringu uuesti kujundusvaates avada, kui muudate esmalt võrdluse tehtemärki uuesti (=) SQL-vaates.

Liitumise kustutamine

Kui Access loob automaatselt ühenduse, mida te ei soovi või kui loote ühenduse kogemata (nt kahe välja vahel, millel on erinevad andmetüübid), saate selle liita.

  1. Klõpsake päringu kujundusruudustikus ühendust, mille soovite eemaldada.

  2. Vajutage kustutusklahvi (DELETE).

-või-

  • Paremklõpsake päringu kujundusruudustikus ühendust, mille soovite eemaldada, ja seejärel klõpsake käsku Kustuta.

Lehe algusse

Vt ka

Kirjete lisamine tabelisse, kasutades lisapäringut

Kombineerige mitme päringu tulemid, kasutades

luua päringuid, mis põhinevad mitmetel tabelitel

, et luua, redigeerida või kustutada seost

Kas vajate veel abi?

Täiendage Office'i kasutamise oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liituge Office Insideri programmiga

Kas sellest teabest oli abi?

×