Združevanje tabel in poizvedb

Opomba: Najnovejšo vsebino pomoči v vašem jeziku vam želimo zagotoviti v najkrajšem možnem času. Ta stran je bila prevedena z avtomatizacijo in lahko vsebuje slovnične napake ali nepravilnosti. Naš namen je, da bi bila vsebina za vas uporabna. Ali nam lahko na dnu te strani sporočite, ali so bile informacije za vas uporabne? Tukaj je angleški članek za preprosto referenco.

Ko v Accessovo poizvedbo vključite več virov podatkov, s stiki omejite zapise, ki si jih želite ogledati, in sicer glede na to, kako so viri podatkov povezani med seboj. Uporabite lahko tudi združevanja, da združite zapise iz obeh virov podatkov, tako da vsak par zapisov iz virov postane en zapis v rezultatih poizvedbe.

V tem članku so navedene različne vrste združevanja in vam pokaže, kako jih uporabiti v poizvedbi. Pridruževanje se privzeto samodejno ustvari, če je v poizvedbi že relacija med dvema viroma podatkov, ki jih uporabljate. Ustvari se tudi združevanje, če obstajajo polja, ki jasno ustrezajo drug drugemu. Izbrišete lahko samodejno ustvarjeno združevanje. V tem članku so na voljo osnovne informacije o relacijah tabel, vključno s tem, kako ustvariti eno.

Opomba: Poizvedbam se lahko pridružite na enak način, kot se pridružite tabelam, lahko pa se tudi pridružite obema.

V tem članku

Pregled

Vrste združevanj

Prikaz vrstic, kjer skupna vrednost obstaja v obeh spojenih tabelah

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

Pokaži vse vrstice iz obeh tabel in se jim pridružite, kjer obstaja skupna vrednost

Navzkrižna združevanja

Združevanje tabel na osnovi neenakosti vrednosti polj

Brisanje združevanja

Pregled

Zbirka podatkov je zbirka tabel podatkov, ki med seboj nosijo logične relacije. S relacijami povežete tabele po poljih, ki so v skupni rabi. Tabela je lahko del poljubnega števila relacij, vendar ima vsaka relacija vedno točno dve tabeli. V poizvedbi je relacija predstavljena z združevanjem.

Ko v poizvedbo dodate tabele, Access ustvari združevanja, ki temeljijo na relacijah, ki so bile določene med tabelami. Stike lahko ročno ustvarite v poizvedbah, tudi če ne predstavljajo relacij, ki so že določene. Če uporabite druge poizvedbe (namesto tabel) kot vire podatkov za poizvedbo, lahko ustvarite stike med izvornimi poizvedbami in tudi med temi poizvedbami in tabelami, ki jih uporabljate kot vire podatkov.

Združevanja se podobno obnašajo z merili poizvedbe v tem, da določajo pravila, s katerimi se morajo podatki ujemati, ki jih je treba vključiti v operacije poizvedbe. V nasprotju z merili, združevanja tudi določite, da bodo vsak par vrstic, ki izpolnjujejo pogoje združevanja, Združene v množici zapisov, da bo obrazec eno vrstico.

Na voljo so štiri osnovne vrste združevanja: Inner joins, Outer joins, Cross joins in Neenaka združevanja. V tem članku je raziskano vsako vrsto združevanja, ki jo lahko uporabite, zakaj uporabite posamezno vrsto in kako ustvarite združevanja.

Združevanja so poizvedbe, katere relacije so v tabelah: prikaz podatkov v dveh virih, ki temeljijo na podatkovnih vrednostih, ki jih imajo v skupni rabi. Tukaj je ponazoritev združevanja v pogledu načrta poizvedbe, v katerem so lastnosti združevanja odprte v pogovornem oknu:

Polje »Lastnosti stika«

Ta vrstica med tabelami predstavlja združevanje. Dvokliknite pridruževanje, da odprete pogovorno okno lastnosti združevanja (prikazano) in pregledate ali spremenite združevanje.

Stiki so včasih usmerjeni. V tem območju pogovornega okna je prikazano, katera tabela je v stiku 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 in 3 je desno zunanje združevanje.

Uporabite lahko polja iz obeh tabel, podatki, ki se nanašajo na določeno opravilo, pa so prikazani iz vsake. V notranjem stiku niso vključeni nobeni drugi podatki. V zunanjem stiku so v rezultatih poizvedbe vključeni tudi nepovezani zapisi iz ene tabele.

Vrh strani

Vrste združevanj

Na voljo so štiri osnovne vrste združevanja: Inner joins, Outer joins, Cross joins in Neenaka združevanja. Navzkrižne združevanja in neenakopravna združevanja so napredne vrste stikov in se redko uporabljajo, vendar morate vedeti, ali so na voljo popolno razumevanje tega, kako sodelovanje deluje.

Notranja združevanja: v kombinaciji z obema tabelama so le sorodni podatki

Notranje združevanje je eno, v katerem Access vključuje le podatke iz tabele, če so v povezani tabeli ustrezni podatki in obratno. Večino časa boste uporabili Inner joins. Ko ustvarite stik in ne določite vrste združevanja, Access predvideva, da želite notranje združevanje. Notranja združevanja so uporabna, ker omogočajo združevanje podatkov iz dveh virov, ki temeljijo na vrednostih v skupni rabi – in vidite le podatke, ko je na voljo celotna slika.

Zunanja združevanja: vsi sorodni podatki so pravilno združeni in vsi preostali zapisi iz ene tabele

Zunanji stik je podoben notranjemu združevanju, vendar doda preostale vrstice iz ene od tabel. Zunanji stiki so usmerjeni: levo zunanje združevanje vključuje vse zapise iz leve tabele – Prva tabela v stiku – in desno zunanje združevanje vključuje vse zapise iz desne tabele – druga tabela v stiku.

Popolna zunanja združevanja: vsi podatki, Združeni, kjer je to izvedljivo

V nekaterih sistemih lahko zunanje združevanje vključuje vse vrstice iz obeh tabel, pri čemer so vrstice Združene, ko ustrezajo. To se imenuje polno zunanjo združevanje in Access jih ne podpira izrecno. Če pa želite doseči enak učinek, lahko uporabite navzkrižno združevanje in pogoje.

Navzkrižna združevanja: vsi podatki, združeni na vse možne načine

V večini časa je navzkrižna združitev stranski učinek dodajanja dveh tabel v poizvedbo in nato pozabite, da se jim pridružite. Access to razlago pomeni, da si želite ogledati vse zapise iz ene tabele v kombinaciji z vsakim zapisom iz druge tabele – vse možne kombinacije zapisov. Ker ni mogoče združiti nobenih podatkov, se ta vrsta združevanja redko ustvari uporabne rezultate. Vendar pa obstaja nekaj primerov, ko gre za navzkrižno združevanje le tisto, kar potrebujete.

Neenaka združevanja: kot redno združevanje, vendar uporaba drugačne primerjave za združevanje vrstic

Neenakopravna združevanja uporabite operator, ki ni enačaj (=), da primerjate vrednosti in določite, ali in kako združiti podatke. Neenaki stiki niso izrecno podprti, lahko pa uporabite navzkrižno združevanje in pogoje, da dosežete enak učinek.

Prikaz vrstic, kjer skupna vrednost obstaja v obeh spojenih tabelah

Če želite prikazati le tiste vrstice, ki imajo ujemajoče se vrednosti v polju» Združeno «, uporabite notranje združevanje. Access samodejno ustvari notranje stike.

Notranja združevanja so najpogostejša vrsta združevanja. Poizvedbam sporoči, da vrstice iz ene od spojenih tabel ustrezajo vrsticam v drugi tabeli, na podlagi podatkov v poljih, ki so v stiku. Ko se zažene poizvedba z notranjim združevanjem, bodo v operacijah poizvedbe vključene le tiste vrstice, v katerih obstaja skupna vrednost v obeh spojenih tabelah.

Kako uporabim notranjo združevanje?

Večino časa vam ni treba storiti ničesar za uporabo notranjega združevanja. Če so tabele, ki jih dodate v poizvedbo, že v relaciji, Access samodejno ustvari notranjo 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 niste ustvarili relacij, Access samodejno ustvari notranje združevanja, če dodate dve tabeli v poizvedbo in so v teh tabelah polja z istim ali združljivim podatkovnim tipom, ena od polj združevanja pa je primarni ključ. Simboli» ena «in» mnogo «nista prikazana v tem primeru, ker referenčna integriteta ni uveljavljena.

Če dodate poizvedbe v poizvedbo in niste ustvarili relacij med temi poizvedbami, Access samodejno ne ustvari notranjih stikov med temi poizvedbami ali med poizvedbami in tabelami. Na splošno bi jih sami ustvarili 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 notranjo združevanje

Inner joins so navedeni v programu SQL v stavku FROM, kot je prikazano spodaj:

FROM table1 INNER JOIN table2 ON table1.polje1 primerjati Tabela2.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 notranje združevanja, si oglejte temo Operacija INNER JOIN.

Vrh strani

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

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

Zunanji stiki lahko ostanejo zunanji stiki ali pa so lahko zunanji stiki. V levem zunanjem združevanju poizvedba vključuje vse vrstice iz prve tabele v izjavi SQL stavka FROM in le tiste vrstice iz druge tabele, v katerih polje za združevanje vsebuje vrednosti, ki so skupne obema tabelama. V desnem zunanjem združevanju poizvedba vključuje vse vrstice iz druge tabele v izjavi SQL stavka FROM in le tiste vrstice iz druge tabele, v katerih polje za združevanje vsebuje vrednosti, ki so skupne obema tabelama.

Opomba: Lahko preprosto poveste, katera tabela je leva tabela ali desna tabela v danem stiku, tako da dvokliknete stik in nato pogledate v pogovornem oknu lastnosti združevanja . Preklopite lahko tudi v pogled SQL in nato pregledate stavek FROM.

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

Kako uporabim zunanjo združevanje?

Ustvarite zunanje združevanje tako, da spremenite obstoječe notranje združevanje. Če ne obstaja notranja spojna datoteka, jo ustvarite in jo nato spremenite v zunanjo združevanje.

Spreminjanje notranje združevanja v zunanjo združevanje

  1. V pogledu načrta poizvedbe dvokliknite povezavo, ki jo želite spremeniti.

    Odpre se pogovorno okno Lastnosti stika.

  2. V pogovornem oknu lastnosti združevanja upoštevajte možnosti, ki so navedene poleg možnosti 2 in možnost 3.

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

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

Dvoumne zunanje združitve

Če ustvarite poizvedbo, ki vsebuje levo združevanje in notranjo združevanje, Access morda ne bo mogel določiti, katero operacijo združevanja lahko najprej izvedete. Ker so rezultati drugačni, odvisno od tega, ali je najprej izvedeno levo združevanje ali notranje združevanje, Access prikaže sporočilo o napaki:

Če želite odpraviti to napako, morate poizvedbo spremeniti tako, da je jasno, kateri se pridruževanje najprej izvesti.

Sintaksa SQL za zunanjo združevanje

Zunanja združevanja so navedena v storitvi SQL v stavku FROM, kot je prikazano spodaj:

IZ Tabela1 [levo | Desno] Pridružite se Tabela2
v Tabela1. polje1 Primerjaj 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.

primerjava

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

Če želite več informacij o sintaksi zunanjega združevanja, si oglejte temo levo PRIdruževanje, operacije z desnopovezavo.

Vrh strani

Pokaži vse vrstice iz obeh tabel in se jim pridružite, kjer obstaja skupna vrednost

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

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

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

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

  3. Če želite kopirati kodo SQL, pritisnite CTRL + C.

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

  5. Vnesite UNION in nato pritisnite Enter.

    Opomba: Ne uporabite ključne besede» vse «, ko uporabite poizvedbo za združevanje za izvajanje celotnega zunanjega združevanja.

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

  7. V kodi, ki ste jo prilepili, spremenite levo pridruževanje v desno.

  8. Izbrišite podpičje na koncu stavka drugi stavek in nato pritisnite tipko ENTER.

  9. Dodajte stavek WHERe, ki določa, da je vrednost polja» združitev «NIČELNa 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 boste ta stavek WHERE:

    Kje je Products.ID NULL

  10. Vnesite podpičje (;) na koncu stavka WHERe, če želite označiti 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 v tem, da niso izrecno zastopana v Access. V navzkrižnem stiku je vsaka vrstica iz ene tabele združena z vsako vrstico iz druge tabele, zaradi česar se imenuje navzkrižni izdelek ali izdelek kartezijski. Ko zaženete poizvedbo s tabelami, ki niso izrecno Združene, je rezultat navzkrižni izdelek. Navzkrižna združevanja so običajno nenamerna, vendar obstajajo primeri, kjer so lahko uporabni.

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 vaše podjetje imelo spektakularno leto, vi pa razmišljate o tem, kako strankam podelite popuste. Ustvarite lahko poizvedbo, ki povzema nakupe posameznega kupca, ustvari majhno tabelo z več možnimi odstotki popusta in združi dve v drugi poizvedbi, ki izvede navzkrižno združevanje. Končate s poizvedbo, ki prikaže niz hipotetičnih rabatov za vsako stranko.

Kako uporabim navzkrižno združevanje?

Navzkrižna združitev je ustvarjena 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 vsako vrstico iz vsake tabele ali poizvedbe, ki ni izrecno združena v katero koli drugo tabelo ali poizvedbo za vsako drugo vrstico v rezultatih. RazMislite o povrnitvi scenarija iz prejšnjega odstavka. PredPostavimo, da imate 91 strank, in si želite ogledati pet možnih odstotkov popusta. Vaš križni stik proizvede 455 vrstic (zmnožek 91 in 5).

Kot si lahko predstavljate, lahko nenamerne navzkrižne stike ustvarijo ogromne številke vrstic v rezultatih poizvedbe. Poleg tega so ti rezultati na splošno nesmiselni, ker če v resnici ne nameravate združiti vsake vrstice z vsako drugo vrstico, večina sestavljenih vrstic, ki so prikazane v rezultatih, ne bo smiselna. Na koncu lahko poizvedbe, ki uporabljajo nenamerne navzkrižne stike, trajajo zelo dolgo časa, da se zaženejo.

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

1. obkrožena polja bi morala biti združena med seboj.

Nenamerni navzkrižni produkt
Navzkrižni izdelek, ki ga vrne nenamerna navzkrižna združitev, upodobljena zgoraj.

1. zabeležite zelo veliko število zapisov.

Popravljeni rezultat poizvedbe
Rezultate, ko je ustvarjena pravilna združitev.

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

Vrh strani

Združevanje tabel na osnovi neenakosti vrednosti polj

Združevanja ni treba temeljiti na enakovrednosti pridruženih polj. Združevanje lahko temelji na katerem koli primerjalnem operatorju, na primer večji kot (>), manjši kot (<) ali pa ni enak (<>). Stiki, ki ne temeljijo na enakovrednosti, se imenujejo neenake združitve.

Če želite združiti vrstice dveh virov podatkov, ki temeljijo na vrednostih polja, ki niso enake, uporabite neenako združevanje. Po navadi neenaki stiki temeljijo na večji kot (>), manjši od (<), večji ali enak (> =) ali manjši ali enaki (< =) primerjalni operatorji. Neenaki stiki, ki temeljijo na operatorju» ni enako «(<>), lahko vrnejo skoraj toliko vrstic kot navzkrižne združevanja, rezultate pa je težko razložiti.

Kako uporabim neenako združevanje?

Neenaki stiki niso podprti v pogledu načrta. Če jih želite uporabiti, morate to narediti z uporabo pogleda SQL. Vendar pa lahko ustvarite združevanje v pogledu načrta, preklopite v pogled SQL, najdete operator EQUAL (=) primerjave in ga spremenite v operatorja, ki ga želite uporabiti. Ko to naredite, lahko poizvedbo znova odprete v pogledu načrta, če najprej spremenite operator primerjave nazaj na EQUAL (=) v pogledu SQL.

Brisanje združevanja

Če Access samodejno ustvari stik, ki ga ne želite, ali če ustvarite pridruževanje pomotoma – na primer združevanje med dvema poljema, ki imata različne vrste podatkov – lahko izbrišete združevanje.

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

  2. Pritisnite tipko delete.

- ali -

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

Vrh strani

Glejte tudi

Dodajanje zapisov v tabelo s poizvedbo za dodajanje

Združevanje rezultatov več poizvedb za izbiranje s poizvedbo za združevanje

Ustvarjanje poizvedbe na osnovi več tabel

Ustvarjanje, urejanje ali brisanje relacije

Razširite poznavanje Officea
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.

×