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

Ko v Accessovo poizvedbo vključite več virov podatkov, lahko s združevanji omejite zapise, ki si jih želite ogledati, na podlagi tega, kako so viri podatkov povezani med seboj. Združitve uporabite tudi za združevanje zapisov iz obeh virov podatkov, tako da vsak par zapisov iz virov postane en zapis v rezultatih poizvedbe.

V tem članku so predstavljene različne vrste združevanj in navodila za njihovo uporabo v poizvedbi. Privzeto je združitev samodejno ustvarjena, če že obstaja relacija med dvema viroma podatkov, ki ga uporabljate v poizvedbi. Združitev je ustvarjena tudi, če obstajajo polja, ki jasno ustrezajo druga drugi. Samodejno ustvarjeno združitev lahko izbrišete. V tem članku so navedene osnovne informacije o relacijah med tabelami, vključno s tem, kako jo ustvarite.

Opomba: Poizvedbe lahko združite na enak način, kot združite tabele, lahko pa združite obe.

V tem članku

Pregled

Zbirka podatkov je zbirka tabel podatkov, ki vsebuje logične relacije med seboj. Z relacijami povežete tabele po skupnih poljih. Tabela je lahko del poljubnega števila relacij, vendar ima vsaka relacija vedno natanko dve tabeli. V poizvedbi relacijo predstavlja združitev.

Ko v poizvedbo dodate tabele, Access združitve, ki temeljijo na relacijah, določenih med tabelami. Združitve v poizvedbah lahko ustvarite ročno, tudi če ne predstavljajo že določenih relacij. Če uporabite druge poizvedbe (namesto tabel ali poleg tabel) kot vire podatkov za poizvedbo, lahko ustvarite združitve med izvornimi poizvedbami ter tudi med temi poizvedbami in tabelami, ki jih uporabljate kot vire podatkov.

Združitve delujejo podobno kot pogoji poizvedbe v tem, da vzpostavijo pravila, ki se morajo ujemati s podatki, da so vključeni v operacije poizvedbe. V nasprotju s pogoji združitve določajo tudi, da bodo vsi pari vrstic, ki izpolnjujejo pogoje združevanja, združeni v naboru zapisov tako, da tvorijo eno vrstico.

Obstajajo štiri osnovne vrste združevanj: notranja združevanja, zunanja združevanja, navzkrižna združevanja in neenaka združevanja. V tem članku so raziskone posamezne vrste združevanj, ki jih lahko uporabite, zakaj uporabljate posamezno vrsto in kako ustvarite združitve.

Združitve so poizvedbe, ki so relacije s tabelami: navedba, kako je mogoče združiti podatke v dveh virih glede na skupne podatkovne vrednosti. Oglejte si sliko združevanja v pogledu načrta poizvedbe, z odprtimi lastnostmi združitve v pogovornem oknu:

Polje »Lastnosti stika«

Ta vrstica med tabelami predstavlja združitev. Dvokliknite združitev, da odprete pogovorno okno Lastnosti združitve (prikazano) in preglejte ali spremenite združitev.

Združitve so včasih usmerjene. V tem območju pogovornega okna je prikazano, katera tabela je v združevanju in katera polja so uporabljena za združevanje tabel.

To območje določa vrsto združevanja: možnost 1 je notranje združevanje, 2 je levo zunanje združevanje, 3 pa desno zunanje združevanje.

Uporabite lahko polja iz obeh tabel, iz vsake tabele pa so prikazani podatki, ki se nanašajo na dano opravilo. V notranje združevanje niso vključeni nobeni drugi podatki. V zunanjem združevanju so v rezultate poizvedbe vključeni tudi nepovezani zapisi iz ene tabele.

Na vrh strani

Vrste združevanj

Obstajajo štiri osnovne vrste združevanj: notranja združevanja, zunanja združevanja, navzkrižna združevanja in neenaka združevanja. Navzkrižna združevanja in neenaka združevanja so napredne vrste združevanj in se redko uporabljajo, vendar morate vedeti, kako delujejo združitve.

Inner joins: only related data from both tables combined

Notranje združevanje je združevanje, v katerem Access vključi podatke iz tabele le, če so v povezani tabeli ustrezni podatki, in obratno. V večini primerov boste uporabili notranja združevanja. Ko ustvarite združitev in ne določite vrste združevanja, Access predvideva, da želite notranje združevanje. Notranja združevanja so uporabna, ker vam omogočajo združevanje podatkov iz dveh virov na osnovi vrednosti v skupni rabi, tako da vidite podatke le, ko je na voljo popolna slika.

Zunanja združevanja: vsi povezani podatki so pravilno združeni, poleg tega pa še vsi preostali zapisi iz ene tabele

Zunanje združevanje je podobno notranjemu združevanju, vendar doda preostale vrstice iz ene od tabel. Zunanja združevanja so usmeritev: levo zunanje združevanje vključuje vse zapise iz leve tabele – prve tabele v združevanju – in desno zunanje združevanje vključuje vse zapise iz desne tabele – drugo tabelo v združevanju.

Polna zunanja združevanja: vsi podatki, združeni, kjer je to mogoče

V nekaterih sistemih lahko zunanje združevanje vključuje vse vrstice iz obeh tabel, skupaj z vrsticami, ko ustrezajo. To se imenuje popolno zunanje združevanje in Access jih ne podpira izrecno. Vendar pa lahko uporabite navzkrižno združevanje in pogoje, da dosežete enak učinek.

Cross joins: all the data, combined every possible way

V večini primerov je navzkrižno združevanje stranski učinek dodajanja dveh tabel v poizvedbo in nato pomnjenje. Access to tolmači tako, da pomeni, da si želite ogledati vsak zapis iz ene tabele v kombinaciji z vsakim zapisom iz druge tabele – vsaka možna kombinacija zapisov. Ker podatkov ni mogoče združiti, ta vrsta združevanja redko vrne uporabne rezultate. Vendar pa obstaja nekaj primerov, ko je navzkrižno združevanje ravno tisto, kar potrebujete.

Neenaka združevanja: kot običajno združevanje, vendar z drugačno primerjavo za združevanje vrstic

Neenaka združevanja uporabljajo operator, ki ni enačaj (=), za primerjavo vrednosti in določanje, ali in kako združiti podatke. Neenaka združevanja niso izrecno podprta, lahko pa uporabite navzkrižno združevanje in pogoje, da dosežete enak učinek.

Pokaži vrstice, kjer obstaja skupna vrednost v obeh združenih tabelah

Če želite prikazati le tiste vrstice, ki imajo ujemajoče se vrednosti v združenih polju, uporabite notranje združevanje. Access samodejno ustvari notranja združevanja.

Notranja združevanja so najpogostejša vrsta združevanja. Povejo poizvedbi, da vrstice iz ene od združenih tabel ustrezajo vrsticam v drugi tabeli na podlagi podatkov v združenih poljih. Ko zaženete poizvedbo z notranjim združevanjem, bodo v operacije poizvedbe vključene le tiste vrstice, kjer skupna vrednost obstaja v obeh združenih tabelah.

Kako uporabim notranje združevanje?

V večini primerov vam ni treba narediti ničesar, da bi uporabili notranje združevanje. Če tabele, ki jih dodate v poizvedbo, že imajo relacije, Access samodejno ustvari notranje združevanje med vsakim parom povezanih tabel, ko dodate tabele. Če vsilite eferenčna integriteta, Access prikaže tudi številko »1« nad združevalno črto, da vidite, katera tabela je na strani »ena« relacija »ena proti mnogo«, in znak za neskončno ( ) za prikaz, katera tabela je na strani »mnogo«.

Tudi če relacij še niste ustvarili, Access samodejno ustvari notranja združevanja, če v poizvedbo dodate dve tabeli, vsaka od teh tabel pa ima polje z istim ali združljivim podatkovom, eno od polj za združevanje pa je primarni ključ. Simbola »ena« in »mnogo« v tem primeru ni prikazana, ker referenčna integriteta ni uveljavljena.

Če v poizvedbo dodate poizvedbe in med temi poizvedbami niste ustvarili relacij, Access med temi poizvedbami ali med poizvedbami in tabelami ne ustvari samodejno notranjih združevanj. Na splošno jih ustvarite sami. Notranje združevanje ustvarite tako, da povlečete polje iz enega vira podatkov v polje v drugem viru podatkov. Access prikaže črto med dvema poljema in s tem pokaže, da je bila ustvarjena združitev.

Sintaksa SQL za notranje združevanje

Notranja združevanja so določena v stavku FROM v stavku SQL, kot je prikazano spodaj:

FROM table1 INNER JOIN table2 ON table1.field1 compare table2.field2

Operacija INNER JOIN je sestavljena iz teh delov:

Del

Opis

tabela1, tabela2

Imena tabel z zapisi, ki so združeni.

polje1, polje2

Imena polj, ki so združena. Če polja niso številčna, morajo biti istega podatkovni tip in imeti isto vrsto podatkov, ni jim pa treba imeti istega imena.

primerjava

Kateri koli relacijski primerjalni operator: "=," "<," ">," "<=," ">=," ali "<>."

Če želite več informacij o sintaksi notranjega združevanja, glejte temo Operacija INNER JOIN.

Na vrh strani

Prikaz vseh vrstic iz ene tabele in ustreznih vrstic iz druge tabele

Zunanja združevanja povejo poizvedbi, da čeprav nekatere vrstice na obeh straneh združevanja natančno ustrezajo, mora poizvedba vključevati vse vrstice iz ene tabele in tudi tiste vrstice iz druge tabele, ki imajo skupno vrednost na obeh straneh združevanja.

Zunanja združevanja so lahko levi zunanji združevanja ali pa desni zunanji združevanja. V levem zunanjem združevanju poizvedba vključuje vse vrstice iz prve tabele v stavku FROM izjave SQL in le tiste vrstice iz druge tabele, v kateri so v spojnih poljih vrednosti, ki so skupne za obe tabeli. V desnem zunanjem združevanju poizvedba vključuje vse vrstice iz druge tabele v stavku FROM stavka SQL z izjavo FROM in samo tiste vrstice iz druge tabele, v kateri so v spojnih poljih vrednosti, ki so skupne za obe tabeli.

Opomba: Preprosto lahko vidite, katera tabela je leva tabela ali prava tabela v danem združevanju, tako da dvokliknete združitev in si nato ogledate pogovorno okno Lastnosti združitve . Preklopite lahko tudi v pogled SQL, nato pa pregledate stavek FROM.

Ker nekatere vrstice na eni strani zunanjega združevanja nimajo ustreznih vrstic iz druge tabele, bodo nekatera polja, vrnjena v poizvedbi iz te druge tabele, prazna, če vrstice ne ustrezajo.

Kako uporabim zunanje združevanje?

Zunanje združevanje ustvarite tako, da spremenite obstoječe notranje združevanje. Če notranje združevanje ne obstaja, ga ustvarite in nato spremenite v zunanje združevanje.

Spreminjanje notranjega združevanja v zunanje združevanje

  1. V pogledu načrta poizvedbe dvokliknite združitev, ki ga želite spremeniti.

    Odpre se pogovorno okno Lastnosti stika.

  2. V pogovornem oknu Lastnosti združitve bodite seznanjeni z možnostmi, ki so navedene poleg možnosti 2 in 3. možnosti.

  3. Kliknite možnost, ki jo želite uporabiti, in nato V redu.

  4. Access prikaže združitev in prikaže puščico, ki kaže iz vira podatkov, kjer bodo vse vrstice vključene v vir podatkov, pri katerem bodo vključene le tiste vrstice, ki izpolnjujejo pogoje združitve.

Dvoumna zunanja združevanja

Če ustvarite poizvedbo, ki vsebuje operaciji LEFT JOIN in INNER JOIN, Access morda ne bo mogel določiti, katero operacijo združitve je treba izvesti najprej. Ker se rezultati razlikujejo glede na to, ali se najprej izvede levo ali notranje združevanje, Access prikaže sporočilo o napaki:

Če želite odpraviti to napako, morate poizvedbo spremeniti tako, da je jasno, katero združitev je treba najprej izvesti.

Sintaksa SQL za zunanje združevanje

Zunanja združevanja so določena v stavku FROM v sql, kot je prikazano spodaj:

FROM tabela1 [ LEFT | RIGHT ] JOIN table2ON table1.field1 compare table2.field2

Operaciji LEFT JOIN in RIGHT JOIN sta sestavljeni iz teh delov:

Del

Opis

tabela1, tabela2

Imena tabel z zapisi, ki so združeni.

polje1, polje2

Imena polj, ki so združena. Polja morajo biti istega podatkovni tip in imeti isto vrsto podatkov, ni jim pa treba imeti istega imena.

primerjava

Kateri koli relacijski primerjalni operator: "=," "<," ">," "<=," ">=," ali "<>."

Če želite več informacij o sintaksi zunanje združitve, glejte temo OPERACIJE LEFT JOIN in RIGHT JOIN.

Na vrh strani

Prikažite vse vrstice iz obeh tabel in jih združite na mestu, kjer obstaja skupna vrednost

Če želite prikazati vse vrstice iz dveh tabel in jih združiti na podlagi skupnih vrednosti, uporabite polno zunanje združevanje. Access izrecno ne podpira celotnih zunanjih združevanj, vendar lahko enak učinek dosežete s poizvedbo za združevanje. V tem postopku je razloženo, kako to naredite, če pa želite več informacij o poizvedbah za združevanje, glejte razdelek Glejte tudi .

Če želite uporabiti poizvedbo za združevanje za izvajanje popolnega zunanjega združevanja:

  1. Ustvarite poizvedbo z levim zunanjim združevanjem v polju, ki ga želite uporabiti za celotno zunanje združevanje.

  2. Na zavihku Osnovno v skupini Pogledi kliknite Ogled in nato še Pogled SQL.

  3. Pritisnite CTRL+C, da kopirate kodo SQL.

  4. Izbrišite podpičje na koncu stavka FROM in pritisnite ENTER.

  5. Vnesite UNION in nato pritisnite Enter.

    Opomba: Ključne besede ALL ne uporabite, ko uporabite poizvedbo za združevanje za izvajanje popolnega zunanjega združevanja.

  6. Pritisnite CTRL+V, da prilepite kodo SQL, ki ste jo kopirali v 3. koraku.

  7. V kodi, ki ste jo prilepili, spremenite LEFT JOIN v RIGHT JOIN.

  8. Izbrišite podpičje na koncu drugega stavka FROM in pritisnite ENTER.

  9. Dodajte stavek WHERE, ki določa, da je vrednost polja združevanja NULL v prvi tabeli, ki je navedena v stavku FROM (leva tabela).

    Če je na primer stavek FROM:

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

    Dodali bi ta stavek WHERE:

    WHERE Products.ID IS NULL

  10. Vnesite podpičje (;) na koncu stavka WHERE, da označite konec poizvedbe za združevanje.

  11. Na zavihku Načrt v skupini Rezultati kliknite Zaženi.

Navzkrižna združevanja

Navzkrižna združevanja se razlikujejo od notranjih in zunanjih združevanj, saj niso izrecno predstavljena v Access. V navzkrižnem združevanju je vsaka vrstica iz ene tabele združena z vsako vrstico iz druge tabele, kar se imenuje navzkrižni izdelek ali cartesian izdelek. Rezultat je vsakič, ko zaženete poizvedbo s tabelami, ki niso izrecno združene. Navzkrižna združevanja so običajno nenamerna, vendar so v nekaterih primerih lahko uporabna.

Zakaj bi uporabil navzkrižno združevanje?

Če želite pregledati vse možne kombinacije vrstic med dvema tabelama ali poizvedbami, uporabite navzkrižno združevanje. Recimo, da je bilo vaše podjetje spektakularno leto, vi pa razmišljate o popustih za stranke. Ustvarite lahko poizvedbo, ki sešteje nakupe posamezne stranke, ustvarite majhno tabelo z več morebitnimi odstotki popustov in združite dva v drugo poizvedbo, ki izvede navzkrižno združevanje. Na koncu je na voljo poizvedba, ki prikaže nabor hipotetičnih popustov za vsako stranko.

Kako uporabim navzkrižno združevanje?

Navzkrižno združevanje se ustvari vsakič, ko v poizvedbo vključite tabele ali poizvedbe in ne ustvarite vsaj enega izrecnega združevanja za vsako tabelo ali poizvedbo. Access združi vse vrstice iz vsake tabele ali poizvedbe, ki ni izrecno pridružena kateri koli drugi tabeli ali poizvedbi, v vsako drugo vrstico v rezultatih. Oglejte si scenarij popusta iz prejšnjega odstavka. Recimo, da imate 91 strank in da si želite ogledati pet možnih odstotkov popustov. Vaše navzkrižno združevanje ustvari 455 vrstic (izdelek 91 in 5).

Kot si lahko predstavljate, lahko nenamerna navzkrižna združevanja ustvarijo ogromno število vrstic v rezultatih poizvedbe. Poleg tega so ti rezultati na splošno nesmiselni, ker če dejansko ne nameravate združiti vseh vrstic z vsako drugo vrstico, večina združenih vrstic, ki se prikažejo v rezultatih, ne bo smiselna. Poizvedbe, ki uporabljajo nenamerne navzkrižne združitve, lahko trajajo zelo dolgo.

Nenamerno navzkrižno združevanje v pogledu načrta poizvedbe

1. Obkrožna polja morajo biti združena med seboj.

Nenamerni navzkrižni produkt

1. Upoštevajte zelo veliko število zapisov.

Popravljeni rezultat poizvedbe

1. Upoštevajte, da je število zapisov veliko manjše.

Na vrh strani

Združevanje tabel na podlagi neenakosti vrednosti polj

Ni treba, da združitve temeljijo na ekvivalenci združenih polj. Združevanje lahko temelji na katerem koli primerjalnem operatorju, na primer večje od (>), manjše od (<) ali ni enako (<>). Združitve, ki ne temeljijo na enakovrednosti, se imenujejo neenake združitve.

Če želite združiti vrstice dveh virov podatkov na osnovi vrednosti polj, ki niso enake, uporabite neenako združevanje. Neenake združitve običajno temeljijo na večjem kotu (>), manjšem od (<), večje ali enako (>=) ali manjše ali enako kot (<=) primerjalnih operatorjev. Neenaka združevanja, ki temeljijo na operatorju ni enako (<>), lahko vrnejo skoraj toliko vrstic kot navzkrižna združevanja, zato je rezultate težko razčistiti.

Kako uporabim neenako pridružitev?

Neenaka združevanja niso podprta v pogledu načrta. Če jih želite uporabiti, morate to narediti v pogledu SQL. Lahko pa ustvarite združitev v pogledu načrta, preklopite v pogled SQL, poiščete operator za primerjavo je enako (=) in ga spremenite v operator, ki ga želite uporabiti. Ko to naredite, lahko poizvedbo znova odprete v pogledu načrta le, če najprej spremenite primerjalnega operatorja nazaj v enako (=) v pogledu SQL.

Brisanje združitve

Če Access samodejno ustvari združitev, ki je ne želite ali če ustvarite združitev pomotoma – na primer združitev med dvema poljema z različnimi vrstami podatkov – lahko izbrišete združitev.

  1. V mreži načrta poizvedbe kliknite združitev, ki jo želite odstraniti.

  2. Pritisnite TIPKO DELETE.

-ali-

  • V mreži načrta poizvedbe z desno tipko miške kliknite združitev, ki jo želite odstraniti, in nato kliknite Izbriši.

Na vrh strani

Dodajanje zapisov v tabelo s

relacije

Ali potrebujete dodatno pomoč?

Ali želite več možnosti?

Raziščite ugodnosti naročnine, prebrskajte izobraževalne tečaje, preberite, kako zaščitite svojo napravo in še več.

Skupnosti vam pomagajo postaviti vprašanja in odgovoriti nanje, posredovati povratne informacije in prisluhniti strokovnjakom z bogatim znanjem.