Tabelite ja päringute ühendamine

Tabelite ja päringute ühendamine

Märkus.: Soovime pakkuda teie keeles kõige ajakohasemat spikrisisu niipea kui võimalik. See leht on tõlgitud automaatselt ja sellel võib leiduda grammatikavigu või ebatäpsusi. Tahame, et sellest sisust oleks teile abi. Palun märkige selle lehe allservas, kas sellest teabest oli teile kasu või mitte. Soovi korral saab ingliskeelset artiklit lugeda siit.

Mitmest andmeallikast kaasamine Accessi päringu kasutate ühenduste kirjeid, mida soovite näha, kuidas andmeallikad on omavahel seotud alusel piirata. Saate kasutada ka ühenduste mõlema andmeallika kirjeid nii, et iga paari allikad kirjeid saab päringutulemites üks kirje.

Selles artiklis käsitletakse erinevaid ühendusetüüpe ja näidatakse, kuidas neid päringus kasutada. Vaikimisi ühendus luuakse automaatselt kui kasutate päringus kahe andmeallikate vahelise on juba seose. Ühenduse luuakse ka siis, kui seal on väljad selgelt üksteisele vastavad. Saate kustutada ka automaatselt loodud ühendus. Selles artiklis on toodud põhiteavet Tabeliseoste, sh loomist.

Märkus.: Saate liituda päringute tabelite ühendamine ja saate liituda ka mõlemad samal viisil.

Artikli teemad

Ülevaade

Ühenduste tüübid

Ridade kuvamine ühendatud tabelite ühise väärtuse korral

Ühe tabeli kõigi ridade ja teise tabeli vastavate ridade kuvamine

Mõlema tabeli kõigi ridade kuvamine ja nendega liituda, kus ühise väärtuse korral

Ristühendused

Väljaväärtuste ebavõrdsuse põhjal tabelite ühendamine

Ühenduse kustutamine

Ülevaade

Andmebaasi on andmeid, mis olema üksteisega loogilised seosed tabelite kogum. Ühendage tabelid, väljad, mida nad on ühist seoste abil. Tabel võib olla mis tahes arv seosed osa, kuid iga seos on alati täpselt kaks tabelit. Päringu, esindab seose ühenduse.

Tabelite lisamine päringu Access loob ühendused, mis põhinevad määratletud tabelite vahelised seosed. Võite käsitsi luua ühendused päringute, isegi siis, kui nad esindavad seosed, mis on juba määratud. Kui kasutate päringu andmeallikad muude päringute (asemel või lisaks tabelid), saate luua ühendused allika päringud ja ka need päringud ja mis tahes andmete allikana kasutatav tabelite vahel.

Ühenduste käituvad sarnaselt Päringukriteeriumide, et nad loovad reeglid, millele andmed peavad vastama kaasatavate päringu toiminguid. Erinevalt kriteeriumidest ühenduste määrata, et iga paari ridu, mis vastavad tingimustele Liitu ühendatakse kirjekomplekti koondumist ühe rea.

On nelja tüüpi ühendusi: sisemised ühendused, välised ühendused, ristühendused ja ebavõrdseid ühendusi. See artikkel uurib iga tüüp, mida saate kasutada, miks te kasutate iga ja kuidas ühendusi luua.

Ühendused on päringute jaoks sama, mis seosed tabelite jaoks: need näitavad, kuidas saab kahe allika andmeid ühiste andmeväärtuste põhjal ühendada. Järgmine on pilt ühendusest päringu kujundusruudustikus; ühenduse atribuudid on dialoogiboksis avatud:

Dialoogiboks Ühenduse atribuudid

Tabelite vahel Real tähistab ühendust. Ühenduse avamiseks topeltklõpsake soovitud Ühenduse atribuudid dialoogiboksi (kujutatud) ja vaadake üle või muutke ühendust.

Ühendused on mõnikord suunatud. See dialoogiboksi ala näitab ühenduse tabeleid ja seda, milliste väljade abil tabelit ühendatakse.

See ala määratleb ühenduse tüübi: suvand 1 on sisemine ühendus, 2 on vasakpoolne väline ühendus ja 3 on parempoolne väline ühendus.

Kasutada saate mõlema tabeli välju ja kuvatakse kõik antud ülesandega seotud andmed. Sisemisse ühendusse muid andmeid ei kaasata. Välise ühenduse puhul kaasatakse päringutulemitesse ka ühe tabeli sidumata kirjed.

Lehe algusse

Ühenduste tüübid

On nelja tüüpi ühendusi: sisemised ühendused, välised ühendused, ristühendused ning ebavõrdsed ühendused. Ristühendused ja ebavõrdsed ühendused on täpsemad ühendusetüübid ja neid kasutatakse harva, kuid peaksite olema neist teadlik, et ühenduste toimimist täielikult mõista.

Sisemised ühendused: ühendatakse ainult mõlema tabeli seotud andmed

Sisemise ühenduse puhul kaasab Access tabeli andmed ainult juhul, kui seotud tabelis on samuti vastavad andmed, ja vastupidi. Enamasti kasutate sisemisi ühendusi. Kui loote ühenduse ega määra, mis liiki ühendus see on, eeldab Access, et soovite sisemist ühendust. Sisemised ühendused on kasulikud, kuna need võimaldavad kombineerida kahe allika andmeid ühiste väärtuste põhjal – seega näete andmeid ainult siis, kui on võimalik saada neist täieliku ülevaate.

Välised ühendused: kõik seotud andmed ühendatakse õigesti, lisaks ühendatakse ka ühe tabeli ülejäänud kirjed

Väline ühendus sarnaneb sisemisega, kuid see lisab ühest tabelist ka ülejäänud read. Välised ühendused on suunatud: vasakpoolne väline ühendus kaasab kõik vasakpoolse tabeli – ühenduse esimese tabeli – kirjed ja parempoolne väline ühendus kaasab kõik parempoolse tabeli – ühenduse teise tabeli – kirjed.

Täielikud välised ühendused: kõik andmed, sobivuse korral ühendatud

Mõnes süsteemis võib väline ühendus sisaldada ridu mõlemast tabelist, kusjuures kattuvad read ühendatakse. Seda nimetatakse täielikuks väliseks ühendamiseks ja Access ei toeta seda otseselt. Sama mõju saavutamiseks saate kasutada ristühendust ja kriteeriume.

Ristühendused: kõik andmed, ühendatud igal võimalikul viisil

Enamasti on ristühendus kahe tabeli päringusse lisamise ja nende ühendamise unustamise kõrvalmõju. Access tõlgendab seda nii, et soovite näha ühe tabeli kõiki kirjeid ühendatuna teise tabeli kõigi kirjetega – igat võimalikku kirjete kombinatsiooni. Kuna andmeid ei saa ühendada, pole sellisel ühendusel enamasti kasulikke tulemusi. Kuid mõnel juhul võib ristühendus olla just see, mida vajate.

Ebavõrdsed ühendused: sarnanevad tavalise ühendusega, kuid read ühendatakse erineva võrdluse abil

Ebavõrdsete ühendust puhul kasutatakse väärtuste võrdlemiseks ja andmete ühendamise vajalikkuse ja viisi määratlemiseks võrdusmärgist (=) erinevat tehtemärki. Ebavõrdseid ühendusi otseselt ei toetata, kuid sama mõju saavutate ka ristühenduse ja kriteeriumide abil.

Ridade kuvamine ühendatud tabelite ühise väärtuse korral

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

Sisemised ühendused on kõige levinum Liitu. Öeldakse päringu selle ridadest ühe ühendatud tabeli read ühendatud väljade andmete põhjal teise tabeli vastavad. Sisemise ühendusega päringu käivitamisel kaasatakse ainult need read, kus ühise väärtuse korral nii ühendatud tabelite päringu toiminguid.

Kuidas sisemist ühendust kasutada?

Enamasti ei pea te sisemise ühenduse kasutamiseks midagi tegema. Kui päringusse lisatavad tabelid sisaldavad juba seoseid, loob Access automaatselt tabelite lisamisel iga seotud tabelite paari vahel sisemise ühenduse. Kui jõustatakse viiteterviklus, kuvab Access ühendusejoone kohal arvu "1", et näidata, milline tabel asub üks-mitmele-seos poolel "üks", ja lõpmatuse sümboli () seose poolel "mitmele" asuva tabeli puhul.

Isegi juhul, kui te pole loonud seoseid, loob Access sisemised ühendused automaatselt, kui kahe tabeli lisamine päringu ja nende tabelite on välja sama või ühilduv andmetüüp ja üks ühenduse väljad on mõne primaarvõti. "Üks" ja "mitmele" sümboleid ei kuvata sel juhul, kuna pole viitamistervikluse jõustamine.

Kui päringule päringute lisamine ja nende vahel seoseid pole loonud, ei loo Access automaatselt sisemised ühendused nende päringute ega päringute ja tabelite vahel. Üldiselt te peaksite need ise looma. Sisemine ühendus, lohistades välja ühe andmeallika väli teise andmeallika loomine Access kuvab vahejoon kaks väljade kuvamiseks, et ühendus on loodud.

Sisemise ühenduse SQL-süntaks

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

FROM Tabel1 INNER JOIN Tabel2 ON Tabel1. Väli1 võrdlus 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 "<>".

Sisemise ühenduse süntaksi kohta lisateabe saamiseks lugege teemat Toiming INNER JOIN.

Lehe algusse

Ühe tabeli kõigi ridade ja teise tabeli vastavate ridade kuvamine

Välised ühendused teavitavad päringut, et kuigi mõned read mõlemal pool ühendust vastavad täpselt, päring peaks sisaldama kõik read ühest tabelist ja nende ridade teise tabeli jagavad mõlemale poolele ning ühendamine ühise väärtuse.

Välised ühendused võivad jääda välisteks või olla parempoolsed välised ühendused. Vasakpoolse välise ühenduse puhul kaasatakse päringusse kõik SQL-lause FROM-klausli esimese tabeli read ning ainult need teise tabeli read, kus ühendav väli sisaldab mõlema tabeli väärtusi. Parempoolse välise ühenduse puhul kaasatakse päringusse kõik SQL-lause FROM-klausli teise tabeli read ning ainult need teise tabeli read, kus ühendav väli sisaldab mõlema tabeli väärtusi.

Märkus.: Saate hõlpsasti kindlaks teha, milline tabel on vasakpoolne tabel või antud ühenduse õige tabeli topeltklõpsamisel ühendus ja seejärel dialoogiboksi Ühenduse atribuudid . Saate ka aktiveerige andmelehevaade, ja seejärel uurida FROM-klausli.

Kuna mõnel välise ühenduse ühe poole real pole teises tabelis vastavaid ridu, on mõni päringutulemites tagastatav teise tabeli väli tühi.

Kuidas välist ühendust kasutada?

Välise ühenduse loomiseks muutke olemasolevat sisemist ühendust. Kui seda pole, looge see ja seejärel muutke see väliseks ühenduseks.

Sisemise ühenduse muutmine väliseks ühenduseks

  1. Topeltklõpsake päringu kujundusvaates muudetavat ühendust.

    Kuvatakse dialoogiboks Ühendamisatribuudid.

  2. Jätke dialoogiboksis Ühendamisatribuudid meelde suvandi 2 ja 3 kõrval loetletud valikud.

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

  4. Access kuvab ühenduse ja noole, mis osutab andmeallikalt, kuhu kõik read kaasatakse, andmeallikale, kuhu kaasatakse ainult need read, mis vastavad ühenduse tingimustele.

Mitmetähenduslikud välised ühendused

Kui loote päring, mis sisaldab LEFT JOIN ja sisemine ühendus, Access ei on võimalik, et määrata, milline liitumine toiming tuleb esimesena teha. Kuna tulemused erinevad sõltuvalt sellest, kas vasakpoolne ühendamine või sisemine ühendus tehakse esimest, Access kuvab tõrketeate:

Selle vea parandamiseks saate muutke päringut nii, et oleks selge, milline ühendamine tuleb esimesena teha.

Välise ühenduse SQL-süntaks

SQL-is on välised ühendused määratud FROM-klauslis, nagu allpool näidatud:

FROM Tabel1 [vasakule | ÕIGE] JOIN Tabel2
kohta table1.field1 võrdlus 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 "<>".

Välise ühenduse süntaksi kohta lisateabe saamiseks lugege teemat Toimingud LEFT JOIN, RIGHT JOIN.

Lehe algusse

Mõlema tabeli kõigi ridade kuvamine ja nendega liituda, kus ühise väärtuse korral

Kui soovite kuvada kahe tabeli kõigi ridade ning nende levinud väärtuste põhjal, kasutage täieliku välise ühendamise. Access ei toeta otseselt täielikku välised ühendused, kuid võite saavutada sama mõju Ühispäringu abil. Järgnevalt selgitatakse seda teha, kuid kui soovite lisateavet ühispäringute, leiate jaotisest Vt ka .

Ühispäringu kasutamine täieliku välise ühendamise jaoks:

  1. Looge päring, milles on vasakpoolne väline ühendamine väljal, mida soovite kasutada täielikus välises ühendamises.

  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 FROM-klausli lõpus semikoolon ja vajutage seejärel sisestusklahvi ENTER.

  5. Tippige UNION ja vajutage sisestusklahvi (ENTER).

    Märkus.: Kasutades ühispäringut täieliku välise ühendamise tegemiseks, ärge kasutage võtmesõna ALL.

  6. Vajutage sammus 3 kopeeritud SQL-koodi kleepimiseks klahvikombinatsiooni CTRL + V.

  7. Asendage kleebitud koodis tekst LEFT JOIN tekstiga RIGHT JOIN.

  8. Kustuta semikoolon lõpus teise FROM klausel, seejärel vajutage klahvi ENTER.

  9. Lisage WHERE-klausel, mis määrab FROM-klauslis märgitud esimese tabeli (vasakpoolne tabel) liitmiseks kasutatava välja väärtuseks NULL.

    Oletame, et FROM-klausel on järgmine.

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

    Tuleks lisada selline WHERE-klausel.

    WHERE Products.ID IS NULL

  10. Tippige WHERE-klausli lõppu semikoolon näitamaks ühispäringu lõppu.

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

Ristühendused

Ristühendused erinevad sisemine ja välimine ühendused, et need ei sisalda konkreetselt Access. Ristühendust, on tulemuseks nn ristkorrutis või otsekorrutis teise tabeli iga rea koos iga rea ühest tabelist. Iga kord, kui käivitate päring, mis sisaldab tabeleid, mis on konkreetselt liitunud, ristkorrutis on tulemus. Ristühendused on tavaliselt soovimatud, kuid on juhtumeid, kus need võivad olla kasulik.

Miks kasutada ristühendust?

Kui soovite uurida iga võimalik kombinatsioon ridade vahel kaks tabelit või päringut, ristühendust kasutada. Oletame näiteks, et teie ettevõte on olnud suurepärane aasta ja kaalute, andes soodustused oma klientidele. Saate luua päringu, mis summeerib iga kliendi ostud, luua väikese tabeli, mis on mitu võimalikku tagasimakse protsentide ja ühendada kaks kasutamine teise päringu, mis sooritavad ristühendust. Saate lõpuks päring, mis kuvab hüpoteetilist soodustused iga kliendi jaoks.

Kuidas ristühendust kasutada?

Mõne ristühendus luuakse iga kord, kui saate päringusse kaasata tabelit või päringut ja ei loomine vähemalt üks konkreetsete liituda iga tabeli või päringu. Access ühendab iga rea igat tabelit või päringut, mis pole ühendatud konkreetselt teise tabeli või päringu tulemused iga teise rea. Kaaluge tagasimakse stsenaarium eelmisest lõigust. Oletame, et teil on 91 klienti ja soovite vaadata viis võimalike tagasimakse protsentide. Teie ristühendus loob 455 rida (91 ja 5 toode).

Nagu võib ette kujutada, saate soovimatud ristühendused luua suure hulga ridu päringutulemi. Lisaks need tulemused on üldiselt mõtte, kuna kui te ei kavatse tegelikult kombineerida igal real, kus iga teise rea, enamik kombineeritud read, mis kuvatakse tulemuste ei tee mõttes. Lõpuks soovimatud ristühendused kasutavate päringute võib võtta kaua aega käivitamiseks.

Soovimatu ristühendus päringu kujundusvaates
Soovimatu ristühendus päringu kujundusvaates.

1. ringiga ümbritsetud väljad tuleks üksteisega ühendada.

Soovimatu risttoode
Rist toote tagastatud tahtmatu ristühendust, mis on kujutatud kohal.

1. Märkus väga suurte kirjete arvu.

Parandatud päringutulem
Pärast õige ühendus on loodud tulemused.

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

Lehe algusse

Väljaväärtuste ebavõrdsuse põhjal tabelite ühendamine

Ühendused ei pea põhinema liidetud väljade ekvivalentsil. Ühendus võib põhineda suvalisel võrdlusmärgil (nt "suurem kui" (>), "väiksem kui" (<) või "ei võrdu" (<>). Ühendusi, mis ei põhine ekvivalentsil, nimetatakse ebavõrdseteks ühendusteks.

Kui soovite kombineerida ebavõrdsete väljaväärtuste põhjal kahe andmeallika read, saate kasutada ebavõrdset ühendust. Tavaliselt põhinevad ebavõrdsed ühendused võrdlusmärkidel "suurem kui" (>), "väiksem kui" (<), "suurem või võrdne" (>=) või "väiksem või võrdne" (<=). Võrdlusmärgil "ei võrdu" (<>) põhinevad ebavõrdsed ühendused võivad tagastada peaaegu sama palju ridu kui ristühendused ning tulemeid võib olla raske tõlgendada.

Kuidas ebavõrdset ühendust kasutada?

Kujundusvaates ebavõrdseid ühendusi ei toetata. Kui soovite neid kasutada, tuleb seda teha, kasutades SQL-i vaade. Siiski saate luua ühenduse kujundusvaates, aktiveerige andmelehevaade, otsige soovitud võrdub (=) võrdlusmärk ja muutke see tehtemärk soovite kasutada. Pärast seda, saate avada ainult päringu kujundusvaates uuesti kui te esimest muutmine võrdluse tehtemärk uuesti võrdub (=) SQL-i vaates.

Ühenduse kustutamine

Kui Access loob automaatselt soovimatu ühenduse või kui loote selle kogemata ise – näiteks ühenduse kahe erinevate andmetüüpidega välja vahel – saate ühenduse kustutada.

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

  2. Vajutage nuppu Kustuta.

-või-

  • paremklõpsake päringu kujundusruudustikus ühendust, mille soovite eemaldada, ning seejärel klõpsake nuppu Kustuta.

Lehe algusse

Vt ka

Kirjete lisamine tabelisse lisanduspäringu abil

Kombineerimine tulemuste mitut valikupäringute Ühispäringu abil

Loomine mitme tabeli päringu

Luua, redigeerida või kustutada seost

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

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×