Združevanje virov podatkov v poizvedbi

Pomembno : Besedilo članka je prevedeno strojno. Glejte zavrnitev odgovornosti. Angleško različico tega članka najdete tukaj .

Ko v poizvedbo vključite več virov podatkov, lahko prikaz vrnjenih zapisov omejite z združevanjem, in sicer na osnovi sorodnosti virov. Združevanje lahko uporabite tudi, če želite združiti zapise iz dveh zbirk podatkov, tako da je vsak par zapisov iz virov prikazan kot en rezultat poizvedbe.

V tem članku boste spoznali različna združevanja in izvedeli, kako jih uporabljati v poizvedbah.

Opomba : V tem članku, izraz tabele se uporablja za pomeni vir podatkov. Uporabite lahko tudi poizvedbe v združevanja, kot bi to tabelo.

Pregled

Notranje združevanje: prikaz vrstic s skupno vrednostjo v obeh povezanih tabelah

Levo ali desno zunanje združevanje: prikaz vseh vrstic ene tabele in ustreznih vrstic druge tabele

Polno zunanje združevanje: prikaz vseh vrstic obeh tabel in združitev vrstic v primeru skupne vrednosti

Navzkrižno združevanje: vse možne kombinacije vrstic

Neenako združevanje: združitev zapisov na osnovi neenakosti vrednosti polj

Odstranjevanje združevanja

Pregled

Razmerje med združevanji in poizvedbami je tako kot med relacijami in tabelami, prikazuje namreč, kako se podatki dveh virov združujejo na osnovi skupnih vrednosti. Oglejte si primer združevanja v poizvedbi, in sicer v pogledu načrta in z odprtim pogovornim oknom »Lastnosti stika«:

Polje »Lastnosti stika«

Združevanje, ki predstavlja ta vrstica med tabelami. Dvokliknite združevanje, če želite odpreti v Lastnosti stika pogovorno okno »«(predstavljenega) in preverjanje ali spreminjanje združevanja.

Združevanja so včasih smerna. V tem delu pogovornega okna je prikazano, katera tabela je katera v združevanju in katera so polja, ki povezujejo tabele.

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

Uporabljena so lahko polja obeh tabel, v vsakem polju pa so prikazani podatki, ki se nanašajo na določeno nalogo. Notranje združevanje ne vključuje drugih podatkov. Pri zunanjem združevanju so v rezultate poizvedbe vključeni tudi nesorodni zapisi ene tabele.

Nekatera združevanja so ustvarjena samodejno

Navadno si z združevanjem ni treba beliti glave – če v poizvedbo dodate tabele, ki že imajo relacijo, Access namreč ustvari notranje združevanje in prezrcali relacijo. Največkrat želite zagotoviti le, da so podatki obeh tabel pravilno združeni, tako da vključujejo ustrezne podatke posamezne tabele, in nič več. V nekaterih primerih pa želite bolj vključujoče združevanje.

Vrste združevanja

Imamo štiri osnovne vrste združevanja: notranje združevanje, zunanje združevanje, navzkrižno združevanje in neenako združevanje. Navzkrižna in neenaka združevanja so zahtevnejša in se jih uporablja redkeje, a si jih je treba ogledati, če želite natančno razumeti delovanje združevanj.

Notranja združevanja: združeni so le sorodni podatki iz obeh tabel

Notranje združevanje je združevanje, pri katerem Access podatke tabele vključi le, če so v povezani tabeli na voljo ustrezni podatki in obratno. Največkrat boste uporabljali notranje združevanje. Če ustvarite združevanje in ne določite vrste združevanja, Access predvideva, da želite uporabiti notranje združevanje. Notranje združevanje je uporabno, ker omogoča združevanje podatkov iz dveh virov na osnovi skupnih vrednosti – tako vidite podatke šele, ko so povsem pregledni.

Zunanje združevanje: vsi sorodni podatki so pravilno združeni, tudi vsi preostali zapisi iz ene tabele

Zunanje združevanje je podobno notranjemu, le da so v poizvedbo vključene še preostale vrstice iz ene tabele. Je smerno: levo zunanje združevanje vključuje vse zapise leve tabele – torej prve tabele v združevanju, desno zunanje združevanje pa vključuje vse zapise desne tabele – druge tabele v združevanju.

Polno zunanje združevanje: vsi podatki – združeni, kjer je mogoče

V nekaterih sistemih lahko zunanje združevanje vključuje vse vrstice obeh tabel, pri čemer so ujemajoče se vrstice združene. To imenujemo polno zunanje združevanje in ga Access ne podpira, vendar pa lahko isti učinek dosežete z navzkrižnim združevanjem in merili.

Navzkrižno združevanje: vsi podatki – združeni na vse mogoče načine

Navzkrižno združevanje se navadno pojavi kot stranski učinek, če v poizvedbo dodate dve tabeli in jih nato pozabite združiti. Access to razume, kot da si želite ogledati vse zapise ene tabele skupaj z vsemi zapisi druge tabele – torej vse mogoče kombinacije zapisov. Ker podatkov ni mogoče združiti, so rezultati takega združevanja le redko uporabni, kljub temu pa je v nekaterih primerih navzkrižno združevanje natanko to, kar potrebujete.

Neenako združevanje: kot navadno združevanje, le da se za združevanje vrstic uporabi drugo primerjavo

Pri neenakem združevanju se za primerjavo vrednosti in odločanje o tem, ali združiti podatke in kako jih združiti, ne uporablja enačaja (=), temveč druge operatorje. Neenako združevanje ni podprto, vendar lahko isti učinek dosežete z navzkrižnim združevanjem in merili.

Na vrh strani

Notranje združevanje: prikaz vrstic s skupno vrednostjo v obeh povezanih tabelah

Če želite prikazati samo vrstice z ujemajočimi se vrednostmi v združenem polju, uporabite notranje združevanje. Access notranje združevanje ustvari samodejno.

Notranja združevanja so najpogostejša vrsta združevanja. Na osnovi skupnih vrednosti v združenih poljih poizvedbo obveščajo o tem, da se vrstice iz ene od združenih tabel ujemajo z vrsticami v drugi tabeli. Ko zaženete poizvedbo z notranjim združevanjem, so v operacijo poizvedbe vključene samo tiste vrstice, v katerih obstaja skupna vrednost v obeh povezanih tabelah.

Kako uporabiti notranje združevanje?

Notranje združevanje ustvarite tako, da v mreži načrta poizvedbe povlečete polje iz enega vira podatkov v polje, ki je v drugem viru podatkov. Access združi polja obeh tabel in med njima prikaže črto.

Samodejno notranje združevanje

Večinoma ni treba narediti nič, da uporabite združevanje. Če v poizvedbo dodate tabele, ki že vključujejo relacije, Access med vsakim parom povezanih tabel samodejno ustvari notranja združevanja, 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 niste ustvarili nobene relacije, Access samodejno ustvari notranja združevanja, ko poizvedbi dodate dve tabeli in ima vsaka od teh polje istega imena ali združljivega podatkovnega tipa, eno od polj pa je primarni ključ svoje tabele. Simboli za »ena« in »mnogo« v tem primeru niso prikazani, ker referenčne integritete niste vsilili.

Če v poizvedbo dodate druge poizvedbe in med njimi niste ustvarili relacij, Access ne ustvari notranjih združevanj med poizvedbami ali med poizvedbami in tabelami samodejno. Ustvariti jih morate sami, in sicer tako, da povlečete polje iz enega vira podatkov v polje, ki je v drugem viru podatkov. Če združevanja ne ustvarite, lahko dobite navzkrižno združevanje – z nejasnimi rezultati, ki vas utegnejo zmesti, če navzkrižnega združevanja niste želeli.

Sintaksa SQL notranjega združevanja

Notranja združevanja so navedena v stavkih SQL in FROM, kot je prikazano spodaj:

FROM tabela1 INNER JOIN tabela2 ON tabela1.polje1primerjalnioperator tabela2.polje2

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.

primerjalnioperator

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

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

Na vrh strani

Levo ali desno zunanje združevanje: prikaz vseh vrstic ene tabele in ustreznih vrstic druge tabele

Zunanja združevanja obveščajo poizvedbo, da čeprav se nekatere vrstice na obeh straneh združevanja popolnoma ujemajo, naj poizvedba vključi vse vrstice iz ene tabele in tudi tiste vrstice iz drugih tabel, ki si delijo skupno vrednost na obeh straneh združevanja (združevanje podatkov, če obe tabeli vključujeta vrstico).

Zunanja združevanja so lahko leva ali desna. Pri levem zunanjem združevanju poizvedba vključi vse vrstice iz prve tabele v stavku FROM izjave SQL in samo tiste vrstice iz druge tabele, kjer pridruženo polje vsebuje skupne vrednosti obeh tabel. Pri desnem zunanjem združevanju poizvedba vključi vse vrstice iz druge tabele v stavku FROM izjave SQL in samo tiste vrstice iz druge tabele, kjer pridruženo polje vsebuje skupne vrednosti obeh tabel.

Opomba : Lahko enostavno ugotovite, katere tabele je leva tabela ali desna tabela v dani pridružite tako, da dvokliknete združevanja in si nato oknu pogovorno okno Lastnosti stika . Ali v pogledu SQL, ga lahko pregledate stavek FROM za združevanje podrobnosti.

Ker nekatere vrstice na eni strani zunanjega združevanja ne bodo imele ustrezajočih vrstic iz druge tabele, bodo nekatera polja druge tabele, ki bodo vrnjena v rezultatih poizvedbe, prazna.

Kako uporabiti zunanje združevanje?

Zunanje združevanje ustvarite tako, da spremenite obstoječe notranje združevanje. Če notranje združevanje ni bilo ustvarjeno, 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ževanje, ki ga želite spremeniti.

    V prikaže se pogovorno okno Lastnosti stika .

  2. V oknu pogovorno okno Lastnosti stika , upoštevajte, možnosti, ki so navedene ob 2 in možnost 3.

  3. Kliknite možnost, ki ga želite uporabiti, in nato kliknite v redu.

  4. V Accessu je združevanje prikazano skupaj s puščico, ki kaže iz vira podatkov, kamor bodo vključene vse vrstice, na vir podatkov, kjer bodo vključene samo tiste vrstice, ki izpolnjujejo združevalni pogoj.

Dvoumna zunanja združevanja

Če ustvarite poizvedbo z operacijama LEFT JOIN in INNER JOIN, Access morda ne bo mogel ugotoviti, katero operacijo združevanja naj izvede najprej. Ker se rezultati razlikujejo glede na to, ali je najprej izvedeno levo ali desno združevanje, vas Access s sporočilom o napaki opozori na dvoumna zunanja združevanja.

Če želite odpraviti napako, spremenite poizvedbo, da bo jasno, katero združevanje je treba izvesti najprej.

Zunanja združevanja in možnost posodobitve poizvedbe

V programih Access je mogoče polje v poizvedbi z več tabelami posodobiti samo, če veljajo ti pogoji:

  • Polje je iz tabele »največ-mnogo« v poizvedbi – torej iz tabele, ki poišče podatke v drugi tabeli.

  • Rezultat poizvedbe vključuje primarni ključ iz tabele »največ-mnogo«.

  • Če je tabela »največ-mnogo« del zunanjega združevanja, je na notranji strani združevanja: leva tabela levega zunanjega združevanja ali desna tabela desnega zunanjega združevanja.

Če kateri pogoj ni izpolnjen, bo polje samo za branje – tako v podatkovnem listu poizvedbe kot v pogledu, ki temelji na poizvedbi.

Sintaksa SQL zunanjega združevanja

Zunanja združevanja so navedena v stavkih SQL in FROM, kot je prikazano spodaj:

FROM tabela1 [ LEFT | RIGHT ] JOIN tabela2
ON tabela1.polje1primerjalnioperator tabela2.polje2

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.

primerjalnioperator

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

Če želite več informacij o sintaksi zunanjega združevanja, si oglejte temo Operaciji LEFT JOIN in RIGHT JOIN.

Na vrh strani

Polno zunanje združevanje: prikaz vseh vrstic obeh tabel in združitev vrstic v primeru skupne vrednosti

Ko želite prikazati vse vrstice obeh tabel in jih združiti po skupnih vrednostih, uporabite polno zunanje združevanje. Access polnega zunanjega združevanja ne podpira, lahko pa isti učinek dosežete z navzkrižnim združevanjem in merili.

  1. Ustvarite poizvedbo in dodajte dve tabeli. Če Access ustvari združevanja, jih izbrišite.

  2. Dodajte polja, ki jih želite vključiti v prikaz poizvedbe.

  3. Dodajte polja za združevanje iz obeh tabel in v vrstici Pokaži počistite potrditvena polja za te vrstice.

  4. V mreži načrta poizvedbe, pod polje za združevanje prve tabele, vnesite polje za združevanje druge tabele v vrstico Pogoji. Če imata polji za združevanje isto ime, pazite, da pri sklicevanju nanju vključite ime tabele.

  5. V vrstici ali pod merilom, ki ste ga pravkar vnesli, vpišite Is Null.

  6. V naslednjo vrstico ali (tik pod prvo), pod polje za združevanje druge tabele, vpišite Is Null.

Poizvedba vrne združen nabor:

  • vrstic, kjer se vrednosti združenih polj ujemajo, podatki so ustrezno združeni (pravzaprav notranje združevanje)

  • vrstic, kjer za združeno polje v prvi tabeli ni vrednosti (pravzaprav izven levega zunanjega združevanja)

  • vrstic, kjer za združeno polje v drugi tabeli ni vrednosti (pravzaprav izven desnega zunanjega združevanja)

Na vrh strani

Navzkrižno združevanje: vse možne kombinacije vrstic

Kadar koli v poizvedbo vključite tabele in jih ne združite, pride do navzkrižnega združevanja. Access združi vsako vrstico ene tabele z vsako vrstico druge tabele, kar kot posledico da navzkrižni ali kartezični produkt. Tega po navadi ne želite, je pa navzkrižno združevanje uporabno pri raziskovanju hipotetičnih situacij.

Zakaj naj uporabim navzkrižno združevanje?

Če želite pregledati vsako mogočo kombinacijo vrstic med dvema tabela ali poizvedbama, uporabite navzkrižno združevanje. Recimo na primer, da je bilo preteklo leto za vaše podjetje odlično in bi strankam radi ponudili znižanje. Naredite lahko poizvedbo, ki sešteje vse nakupe stranke, ustvarite majhno tabelo, v kateri je nekaj mogočih odstotkov znižanja, in oboje združite v novi poizvedbi, ki izvede navzkrižno združevanje. Dobili boste navzkrižni produkt, ki za vsako stranko prikaže nabor hipotetičnih znižanj – prav to, kar potrebujete.

Kako uporabiti navzkrižno združevanje?

Poizvedbi dodajte dve tabeli in jih ne združite. V prikaz poizvedbe vključite polja iz obeh tabel. Access združi vsako vrstico vsake tabele ali poizvedbe, ki ni izrecno združena s katero drugo tabelo ali poizvedbo, s katero koli drugo vrstico v rezultatih. Razmislite o primeru znižanja iz prejšnjega odstavka. Recimo, da imate 91 strank in si želite ogledati pet mogočih odstotkov znižanja. Navzkrižno združevanje da 455 vrstic (zmnožek 91 in 5).

Če so dodane tabele povezane, Access samodejno ustvari notranje združevanje. Če želite na primer ustvariti navzkrižno združevanje, lahko samodejno odstranjevanje odstranite.

Kot si lahko predstavljate, lahko nenamerna navzkrižna združevanja v rezultatih poizvedbe ustvarijo veliko število vrstic. Povrh vsega so ti rezultati brez pomena, saj vrstice niso združene po skupnih podatkih in se kombinacije ne nanašajo na nič.

Na vrh strani

Neenako združevanje: združitev zapisov na osnovi neenakosti vrednosti polj

Ni nujno, da so združevanja osnovana na enakosti združenih polj. Združevanje je lahko osnovano na kakršnem koli primerjalnem operatorju, na primer večje kot (>), manjše kot (<) ali ni enako (<>). Združevanja, ki niso osnovana na enakosti, so neenaka združevanja.

Neenako združevanje uporabite, če želite združiti vrstice iz dveh virov podatkov, ki so osnovane na neenakih vrednostih. Po navadi so neenaka združevanja osnovana na primerjalnih operatorjih večje kot (>), manjše kot (<), večje kot ali enako (>=) in manjše kot ali enako (<=). Neenaka združevanja, ki so osnovana na operatorju ni enako (<>), lahko vrnejo skoraj toliko vrstic kot navzkrižna združevanja. Iz takih rezultatov pa je težko kaj razbrati.

Kako uporabiti neenako združevanje?

Access v pogledu načrta polnega zunanjega združevanja ne podpira, lahko pa isti učinek dosežete z navzkrižnim združevanjem in merili:

  1. Če želite ustvariti neenako združevanje, ustvarite poizvedbo in dodajte dve tabeli. Če Access samodejno ustvari združevanja, jih izbrišite.

  2. Dodajte želena polja za prikaz.

  3. Dodajte polje za združevanje iz prve tabele in v vrstici Pokaži počistite potrditveno polje.

  4. V vrstico Pogoji vnesite želeni operator neenakosti in nato dodajte polje za združevanje iz druge tabele.

Poizvedba vrne vrstice s podatki iz obeh tabel, ki so združeni na osnovi izbrane neenakosti.

Na vrh strani

Odstranjevanje združevanja

Če Access samodejno ustvari združevanje, ki ga ne želite, ali če ustvarite združevanje po pomoti – na primer združevanje med dvema poljema z različnim podatkovnim tipom – ga lahko izbrišete.

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

  2. Pritisnite izbrisati.

-ali-

  • V mreži načrta poizvedbe v desno združevanje, ki ga želite odstraniti, in nato kliknite izbrisati.

Na vrh strani

Opomba : Strojni prevod – zavrnitev odgovornosti: Ta članek je bil preveden z računalniškim programom brez človeškega posredovanja. Microsoft skuša s strojno prevedenimi članki vsebino o Microsoftovih izdelkih, storitvah in tehnologijah približati osebam, ki ne razumejo angleščine. Ker je bil članek strojno preveden, so lahko v njem jezikovne, slovnične in pravopisne napake.

Razširite svoja znanja
Oglejte si izobraževanje
Prvi dobite nove funkcije
Pridružite se programu Office Insider

Vam je bila informacija v pomoč?

Zahvaljujemo se vam za povratne informacije.

Zahvaljujemo se vam za povratne informacije. Videti je, da bi vam prišla prav pomoč enega od naših Officeovih agentov za podporo.

×