Lentelių ir užklausų sujungimas

Pastaba: Norėtume jums kuo greičiau pateikti naujausią žinyno turinį jūsų kalba. Šis puslapis išverstas automatiškai, todėl gali būti gramatikos klaidų ar netikslumų. Mūsų tikslas – padaryti, kad šis turinys būtų jums naudingas. Gal galite šio puslapio apačioje mums pranešti, ar informacija buvo naudinga? Čia yra straipsnis anglų kalba, kuriuo galite pasinaudoti kaip patogia nuoroda.

Kai norite įtraukti kelių duomenų šaltinių "Access" užklausą, naudokite sujungimai apriboti įrašai, kuriuos norite matyti, kaip tarpusavyje susiję su duomenų šaltiniais remiantis. Taip pat naudoti sujungimai sujungti įrašus iš abiejų duomenų šaltinių, kad kiekvienos poros įrašų šaltiniuose tampa vieną įrašą į užklausos rezultatus.

Šiame straipsnyje aptariami įvairūs sujungimų tipai ir parodo, kaip juos naudoti užklausoje. Pagal numatytuosius nustatymus sujungimo automatiškai sukuriamas, jei jau yra ryšio tarp dviejų duomenų šaltinius, galite naudoti užklausoje. Sujungimo sukuriamas taip pat, jei yra laukų, kurie aiškiai atitinka tarpusavyje. Galite panaikinti yra automatiškai sukurtą prisijungti. Šiame straipsnyje pateikiama pagrindinė informacija apie lentelių ryšius, pvz., kaip ją sukursite.

Pastaba: Sujunkite lenteles, ir taip pat galite prisijungti ir taip pat galite prisijungti užklausų.

Šiame straipsnyje

Apžvalga

Sujungimų tipai

Rodomos eilutės, kurioje yra bendrų reikšmių abiejų sujungtų lentelių

Rodomos visos eilutės iš vienos lentelės ir atitinkamos eilutės iš kitos lentelės

Rodomos visos eilutės iš abiejų lentelių, ir prie jų prisijungti, jei yra bendrų reikšmių

Kryžminis sujungimas

Sujunkite lenteles, atsižvelgiant į laukų reikšmių nelygiavertiškumą

Sujungimo naikinimas

Apžvalga

Duomenų bazės yra lentelių duomenų, kad ant loginių ryšių tarpusavyje rinkinys. Ryšių naudojate prisijungti lentelių laukus, kad jie turi bendrą. Lentelės gali būti bet koks simbolių ryšių dalis, tačiau kiekvieno ryšio visada turi tik dvi lenteles. Užklausos, sujungimo pateikiamas ryšį.

Lentelių įtraukimas į užklausą, Access sukuria sujungimai, pagrįstų ryšių, kurios buvo tarp lentelių. Galite rankiniu būdu sukurti sujungimai užklausose, net jei jie nekelia ryšius, kurios jau buvo. Jei naudojate kitus užklausų (o ne arba be lentelių) kaip duomenų šaltiniai užklausos, galite sukurti sujungimai tarp šaltinio užklausas ir tarp jų ir lentelėms, kuris naudojamas kaip duomenų šaltiniai.

Sujungimai, panašiai kaip užklausos kriterijai, nustato taisykles, kurios turi būti įtraukti į užklausos veiksmus, kuriuos turi atitikti duomenys. Skirtingai nei kriterijus, sujungimai nurodo, kad eilutes, kurios atitinka sąlygas prisijungti prie kiekvienos poros sujungiama į įrašų rinkinį, kad sudarytų vieną eilutę.

Yra keturios pagrindinės sujungimų tipai: vidiniai sujungimai, išorinis sujungimas, kryžminis ir nelygiavertis. Šiame straipsnyje analizuoja kiekvieno tipo sujungimo, kuriuos galima naudoti, kodėl galite naudoti kiekvieno tipo, ir kaip jį sukurti.

Sujungimas yra užklausų, kokie lentelių ryšiai: nurodymas, kaip galima derinti dviejų šaltinių duomenis pagal bendras duomenų reikšmes. Štai pavyzdys sujungimo užklausos dizaino rodinyje, su sujungimo ypatybės atidaryti dialogo langą:

Laukas Sujungimo ypatybės.

Ši linija, jungianti lenteles atitinka sujungimą. Dukart spustelėkite prisijungti, kad atidarytumėte į Sujungimo ypatybės dialogo langas (pavaizduoti) ir peržiūra arba keitimas sujungimą.

Sujungimų, kartais krypties. Dialogo lango srityje rodoma, kuri lentelė yra sujungimo, ir laukus, kurie naudojami sujungti lenteles.

Šioje srityje nustatomas sujungimo tipas: 1 parinktis yra vidinis sujungimas, 2 yra Kairysis išorinis sujungimas ir 3 – dešinysis išorinis sujungimas.

Galima naudoti iš abiejų lentelių laukus ir rodomi duomenys, kuris yra susijęs su tam tikrą užduotį iš kiekvienos. Vidinis sujungimas, nėra kitų duomenų yra įtraukiami. Išorinį sujungimą, nesusijusius įrašus iš vienos lentelės taip pat įtraukiami į užklausos rezultatus.

Puslapio viršus

Sujungimų tipai

Yra keturios pagrindinės sujungimų tipai: vidiniai sujungimai, išorinis sujungimas, kryžminis ir nelygiavertis. Kryžminis prisijungia ir nelygiavertis Išplėstinė sujungimo tipai ir retai naudojami, tačiau turėtų būti žinoma apie juos, kad daugiau informacijos apie tai, kaip veikia sujungimai.

Vidiniai sujungimai: derinami tik susiję abiejų lentelių duomenys

Vidinis sujungimas yra viena, kurioje prieiga tik apima duomenų iš lentelės jei susijusioje lentelėje yra atitinkamų duomenų ir atvirkščiai. Daugeliu atvejų, jūs naudojate vidiniai sujungimai. Kuriant sujungimas, o ne nurodyti, kokio tipo sujungimas yra, prieigos daroma prielaida, kad norite vidinį sujungimą. Vidiniai sujungimai yra naudinga, nes jie leidžia jums sujungti duomenis iš dviejų šaltinių pagal bendro naudojimo reikšmes – todėl matysite tik duomenų kai visą paveikslėlį.

Išoriniai sujungimai: visi susiję duomenys tinkamai derinami duomenys ir visi likę vienos lentelės

Išorinio sujungimo kaip vidinis sujungimas, tačiau įtraukia likusių eilutės iš vienos lentelės. Išorinis sujungimas yra krypties: Kairysis išorinis sujungimas yra visus įrašus iš kairės lentelės – pirmosios lentelės sujungimą ir dešinysis išorinis sujungimas yra visus įrašus iš lentelės dešinėje sujungimo antrosios lentelės.

Visas išorinis sujungimas: visi duomenys, derinami, kai tai įmanoma

Kai kurios sistemos išorinio sujungimo gali būti visos eilutės iš abiejų lentelių, kurios eilutės kartu, kai jie atitinka. Tai vadinama visam išoriniam sujungimui ir prieigos visiškai nepalaiko juos. Tačiau galite naudoti kryžminį sujungimą ir kriterijus pasiekti tą patį efektą.

Kryžminiai sujungimai: visi duomenys, derinami bet kokiu galimu būdu

Daugeliu atvejų, kryžminį sujungimą, yra šalutinis dviejų lentelių įtraukimas į užklausą ir tada pamiršti prisijungti prie jų. Prieigos aiškina, tai reiškia, kad norite matyti kiekvieno įrašo iš vienos lentelės kartu su kiekvieno įrašo iš kitos lentelės – kiekvieno sudėtinio įrašus. Kadangi duomenų nėra, gali būti derinama, tokio sujungimo retai apskaičiuojami naudinga rezultatai. Tačiau yra keletas atvejų, kai kryžminį sujungimą, yra tik tai, ko jums reikia.

Nelygiavertis sujungimas: kaip įprastas sujungimas, tačiau derina eilutės kitaip jas lygindamas naudojimas

Nelygiavertis sujungimas naudoti ne lygybės ženklu (=) operatorius palyginti reikšmes ir nustatyti, kaip sujungti duomenis. Nelygiavertis aiškiai nėra palaikomi, tačiau galite pasiekti tą patį efektą naudoti kryžminį sujungimą ir kriterijus.

Rodomos eilutės, kurioje yra bendrų reikšmių abiejų sujungtų lentelių

Jei norite, kad būtų rodomi tik tų eilučių, kuriose yra sutampančių reikšmių sujungtos lauką, galite naudoti vidinį sujungimą. "Access" automatiškai sukuria vidinį sujungimą.

Tai dažniausiai pasitaikantis sujungimų tipas. Jie sako užklausą, eilučių iš vienos į sujungtų lentelių atitinka eilutes į kitą lentelę, remiantis duomenimis, kurių sujungti laukai. Paleidus užklausą su vidinio sujungimo tik tas eilutes, jei yra bendrų reikšmių yra abiejų sujungtų lentelių bus įtraukti į užklausų operacijas.

Kaip naudoti vidinį sujungimą?

Daugeliu atvejų, jums nereikia nieko daryti, kad būtų galima naudoti vidinį sujungimą. Jei įtraukiate į užklausą jau lentelių ryšių, programa Access automatiškai sukuria vidinį sujungimą tarp kiekvienos susijusių lentelių, jei norite pridėti lentelių poros. Jei nuorodų vientisumas įgalintas, „Access“ virš sujungimo eilutės taip pat rodo „1“, reiškiantį, kuri ryšys „vienas – daug“ lentelė yra dalis „vienas“, ir rodo begalybės simbolį (), reiškiantį, kuri lentelė yra dalis „daugelis“.

Net jei nesukūrėte ryšius, Access automatiškai sukuria vidinį sujungimą, jei į užklausą įtraukiate dvi lenteles ir kuriose su tuo pačiu lauku arba suderinami duomenų tipas ir iš sujungimo laukų yra pirminis raktas. Simboliai "vienas" ir "daugelis" šiuo atveju nerodomi, nes nėra būtų vykdomas nuorodų vientisumą.

Jei į užklausą įtraukti užklausos, o ne sukurti ryšius tarp tų užklausų, programa Access automatiškai nesukuria vidiniai sujungimai tarp tų užklausų ar užklausų ir lentelių. Paprastai, turite sukurti juos patys. Galite sukurti vidinį sujungimą, nuvilkus lauką iš vienos duomenų šaltinio lauko kitą duomenų šaltinį. „Access“ rodo liniją tarp dviejų laukų, kuri nurodo sukurtą jungtį.

Vidinio sujungimo SQL sintaksė

Vidiniai sujungimai surodyti SQL sąlygoje from, kaip parodyta toliau:

FROM lentelė1 INNER JOIN lentelė2 ON lentelė1.Laukas1 palyginti Lentelė2.laukas2

Operacija INNER JOIN yra sudaryta iš šių dalių:

Dalis

Aprašas

lentelė1, lentelė2

Lentelių, kurių įrašai suderinti, pavadinimai.

laukas1, laukas2

Sujungiamų laukų pavadinimai. Jei jie nėra skaičius, laukai turi būti to paties duomenų tipas ir turėti vienodos rūšies duomenis, bet jų pavadinimas negali būti toks pat.

palyginti

Bet kuris santykinis lyginimo operatorius: „=“, „<“, „>“, „<=“, „>=“ arba „<>“.

Daugiau informacijos apie vidinio sujungimo sintaksę rasite temoje operacija INNER JOIN.

Puslapio viršus

Rodomos visos eilutės iš vienos lentelės ir atitinkamos eilutės iš kitos lentelės

Išoriniai sujungimai sužinoti užklausą, nors kai kurie iš abiejų pusių sujungimo eilučių tiksliai atitinka, užklausos turėtų būti visos eilutės iš vienos lentelės ir tos eilutės iš kitos lentelės, bendrai yra bendrų reikšmių sujungimo abiejose pusėse.

Išorinis sujungimas gali būti kairysis arba dešinysis išorinis sujungimas, gali būti. Kairysis išorinis sujungimas, užklausa yra visos eilutės iš pirmosios lentelės SQL sakinio sąlygoje FROM, ir tik tos eilutės iš kitos lentelės, kurių prisijungti prie lauke yra bendros abiejų lentelių reikšmės. Dešinysis išorinis sujungimas, užklausa yra visos eilutės iš antrosios lentelės SQL sakinio sąlygoje FROM, ir tik tos eilutės iš kitos lentelės, kurių prisijungti prie lauke yra bendros abiejų lentelių reikšmės.

Pastaba: Galite lengvai pasakyti, kuri lentelė yra kairioji lentelė arba Dešinioji lentelė nurodytą sujungimo dukart spustelėjus sujungimą ir peržiūrėjus dialogo lange Sujungimo ypatybės . Galite perjungti SQL rodinį ir ištirti sąlygą FROM.

Kadangi kai kurių eilučių vienas išorinio sujungimo neturi atitinkamos eilutės iš kitos lentelės, tam tikrų laukų grąžinama reikšmė, į užklausos rezultatus, kitos lentelės bus tušti neatitinka eilutes.

Kaip naudoti išorinį sujungimą?

Galite sukurti išorinį sujungimą, modifikuoti esamą vidinį sujungimą. Jei nėra vidinio sujungimo nėra, sukurkite naują ir pakeiskite išoriniu sujungimu.

Vidinio sujungimo keitimas išoriniu sujungimu

  1. Užklausos dizaino rodinyje dukart spustelėkite norimą keisti sujungimą.

    Bus atidarytas dialogo langas Sujungimo ypatybės.

  2. Dialogo lange Sujungimo ypatybės pažymėkite pasirinkimus išvardytus šalia parinkties 2 ir 3parinktį.

  3. Spustelėkite norimą naudoti parinktį, tada – Gerai.

  4. Access rodo sujungimą ir rodo iš duomenų šaltinio, kur visos eilutės bus įtraukti į duomenų šaltinį, kai bus įtraukti tik tas eilutes sujungimo sąlygą nukreiptą rodyklę.

Neaiškūs išoriniai sujungimai

Jei norite sukurti užklausą, kuri yra LEFT JOIN ir vidinio sujungimo, prieigos gali būti draudžiama nustatyti, kurios prisijungti prie operacijos atkilti pirmiausiai. Kadangi rezultatai skiriasi atsižvelgiant į tai, ar kairysis sujungimas arba vidinio sujungimo atliekama pirmą kartą, programa Access rodo klaidos pranešimą:

Norėdami išspręsti šią klaidą, keisti užklausą, kad būtų aišku, kurį sujungimą atkilti pirmiausiai.

Išorinio sujungimo SQL sintaksė

Išoriniai sujungimai surodyti SQL sąlygoje from, kaip parodyta toliau:

FROM Lentelė1 [kairėje | DEŠINIAJAME] JOIN Lentelė2
ant table1.field1 palyginti Lentelė2.Laukas2

Operacijos LEFT JOIN ir RIGHT JOIN yra sudarytos iš šių dalių:

Dalis

Aprašas

lentelė1, lentelė2

Lentelių, kurių įrašai suderinti, pavadinimai.

laukas1, laukas2

Sujungiamų laukų pavadinimai. Laukai turi būti to paties duomenų tipas ir turėti vienodos rūšies duomenis, bet jie neprivalo turėti to paties pavadinimo.

palyginti

Bet kuris santykinis lyginimo operatorius: „=“, „<“, „>“, „<=“, „>=“ arba „<>“.

Daugiau informacijos apie išorinio sujungimo sintaksę rasite temoje LEFT JOIN, RIGHT JOIN operacijos.

Puslapio viršus

Rodomos visos eilutės iš abiejų lentelių, ir prie jų prisijungti, jei yra bendrų reikšmių

Jei norite, kad rodomos visos eilutės iš dviejų lentelių ir prisijungti prie jų dažnai reikšmes, naudojate visam išoriniam sujungimui. Programa Access aiškiai nepalaiko visas išorinis sujungimas, tačiau galite pasiekti tą patį efektą, naudojant "union" užklausą. Ši procedūra paaiškinama, kaip tai padaryti, tačiau jei norite gauti daugiau informacijos apie "union" užklausas, rasite skyriuje Taip pat žiūrėkite .

Norėdami naudoti "union" užklausos visam išoriniam sujungimui vykdyti:

  1. Sukurkite užklausą, kurios Kairysis išorinis sujungimas yra lauke, kurį norite naudoti visam išoriniam sujungimui.

  2. Skirtuko lapo Pagrindinis grupėje Rodiniai spustelėkite Rodinys, tada spustelėkite SQL rodinys.

  3. Paspauskite CTRL + C nukopijuokite SQL kodą.

  4. Panaikinkite kabliataškį sąlygos from gale, ir paspauskite klavišą ENTER.

  5. Įveskite UNION ir paspauskite klavišą ENTER.

    Pastaba: Kai "union" užklausą naudojate visam išoriniam sujungimui įvykdyti, nenaudokite raktažodžio ALL.

  6. Paspauskite CTRL + V, kad įklijuotumėte SQL kodą, kurį nukopijavote atlikdami 3 veiksmą.

  7. Įklijuotame kode pakeiskite LEFT JOIN į RIGHT JOIN.

  8. Panaikinkite kabliataškį pabaigoje antrosios sąlygos, ir tada paspauskite ENTER.

  9. Įtraukite sąlygą WHERE, nurodančią, kad sujungimo lauko reikšmė yra neapibrėžta reikšmė pirmojoje lentelėje, pateiktoje su sąlyga from (kairiojoje lentelėje).

    Pavyzdžiui, jei sąlyga from yra:

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

    Įtrauktumėte tokią sąlygą WHERE:

    WHERE Products.ID IS NULL

  10. Įveskite kabliataškį (;) pasibaigus WHERE į nurodykite "union" užklausos pabaigą.

  11. Skirtuko Dizainas grupėje Rezultatai spustelėkite Vykdyti.

Kryžminis sujungimas

Kryžminis sujungimas skiriasi nuo vidinių ir išorinių sujungimų, kad jie nėra atskirai rodomi programoje Access. Naudojant kryžminį sujungimą, kiekvienos eilutės iš vienos lentelės kartu su kiekvienos eilutės iš kitos lentelės sudaro vadinamą kryžminį produktą arba Dekarto sandauga. Bet kuriuo metu, kai vykdote užklausą, kuri turi lenteles, kuriose aiškiai neprijungti, kryžminis produktas yra rezultatas. Kryžminis sujungimas paprastai netyčinis, bet yra atvejų, kur jie gali būti naudinga.

Kodėl reikėtų naudoti kryžminį sujungimą?

Jei norite patikrinti kiekvieno sudėtinio eilučių tarp dviejų lentelių arba užklausų, naudoti kryžminį sujungimą. Pavyzdžiui, Tarkime, jūsų verslui turėjo šiais metais įspūdingai ir norėtumėte suteikti nuolaidų klientams. Galite sukurti užklausą, kuri susumuoja kiekvieno kliento pirkimą, sukurti mažą lentelę, kurioje yra keletas galimų grąžinimo procentų ir sujungs su kita užklausa, kuri atlieka kryžminį sujungimą. Galite baigti su užklausa, kuri rodo hipotetinių nuolaidų rinkinį kiekvieno kliento.

Kaip naudoti kryžminį sujungimą?

Kryžminis sujungimas sukuriamas bet kada, jūs savo užklausą įtraukti lenteles ar užklausas ir kurti bent vienas tiesioginis prisijungti prie kiekvienos lentelės ar užklausos. Prieigos sujungia kiekvieną eilutę iš kiekvieną lentelę arba užklausą, aiškiai neprijungta prie kitą lentelę arba užklausą, kad kas antra eilutė rezultatai. Pavyzdys, nuolaida nuo ankstesnės dalies. Tarkime, kad turite 91 klientą ir norite atkreipti dėmesį į penkių procentų galima nuolaida. Jūsų kryžminį sujungimą apskaičiuojami 455 eilutes (91 ir 5 sandauga).

Kaip suprantate, gali būti netyčinis kryžminis sujungimas galite sukurti daugybės eilutes savo užklausos rezultatuose. Be to, šie rezultatai yra paprastai prasmės, nes jei išties neketinate kiekvienos eilutės sujungti su kiekviena kita eilutė, dauguma sujungtų eilučių, rodomų rezultatuose bus prasmės. Galiausiai, užklausos, naudojančios netyčinis kryžminis sujungimas gali labai ilgai užtrukti paleisti.

Netyčinis kryžminis užklausos dizaino rodinio sujungimas

1. Apvesti laukai turi būti sujungti tarpusavyje.

Netyčinis kryžminis produktas

1. Atkreipkite dėmesį, labai daug įrašų.

Teisingas užklausos rezultatas

1. Atkreipkite dėmesį, kad įrašų skaičius yra daug mažesnis.

Puslapio viršus

Sujunkite lenteles, atsižvelgiant į laukų reikšmių nelygiavertiškumą

Sujungimų nėra pagrįsti atitikties , sujungtų laukų. Sujungimo gali būti pagrįstos bet kurį lyginimo operatorių, pvz., didesnis už (>), mažiau nei (<), arba nelygu (<>). Sujungimų, ne pagal atitikties vadinami nelygiavertis.

Jei norite sujungti dviejų pagal laukų reikšmes, kurios nėra lygios duomenų šaltinių eilutes, galite naudoti nelygiavertį sujungimą. Paprastai nelygiavertis, atsižvelgiant į bet kurį iš šių didesnis už (>), mažiau nei (<), daugiau nei arba lygu (> =), arba mažiau nei arba lygu (< =) palyginimo operatorius. Nelygiavertis sujungimas, pagrįstų nėra lygybės (<>) operatorius gali pateikti beveik tiek pat eilučių kaip ar kryžminiai sujungimai ir rezultatai gali būti sunku suprasti.

Kaip naudoti nelygiavertį sujungimą?

Nelygiavertis sujungimas yra nepalaikomi dizaino rodinyje. Jei norite juos naudoti, turite tai padaryti naudojant SQL rodinys. Tačiau galite sukurti sujungimo dizaino rodinyje, perjungti SQL rodinį, rasti ir lygi (=) lyginimo operatorių, pakeiskite ją į operatorių, kurį norite naudoti. Kai tai padarysite, gali tik užklausą kaip dizaino rodinį vėl atidarysite jei jums pirmą keitimą palyginimo operatorius atgal į lygi (=) kaip SQL rodinį.

Sujungimo naikinimas

Jei "Access" automatiškai sukuria sujungimo, kurių nenorite arba jei norite sukurti sujungimo per klaidą, pvz., sujungimą tarp dviejų laukų, kurių duomenų tipai skirtingi – galite panaikinti sujungimą.

  1. Užklausos kūrimo tinklelyje spustelėkite norimą pašalinti sujungimą.

  2. Paspauskite Naikinti.

–arba–

  • Užklausos dizaino tinklelyje, dešiniuoju pelės mygtuku spustelėkite norimą pašalinti sujungimą, ir spustelėkite Naikinti.

Puslapio viršus

Taip pat žr.

Įrašų įtraukimas į lentelę naudojant papildymo užklausą

Kelių išrinkimo užklausų naudojant "union" užklausos rezultatų sujungimas

Pagal kelių lentelių užklausos kūrimas

Kurti, redaguoti ar naikinti ryšį

Tobulinkite savo „Office“ įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijunkite prie „Office Insider“ dalyvių

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×