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

Ja Access vaicājumā iekļaujat vairākus datu avotus, jūs izmantojat savienojumus, lai ierobežotu ierakstus, kurus vēlaties skatīt, atkarībā no tā, kā datu avoti ir saistīti savā starpā. Savienojumus izmanto arī ierakstu apvienošanai no abiem datu avotiem, lai katrs ierakstu pāris no avotiem vaicājuma rezultātos kļūtu par vienu ierakstu.

Šajā rakstā aplūkoti dažādi savienojumu veidi un paskaidrots, kā tos izmantot vaicājumā. Pēc noklusējuma savienojums tiek izveidots automātiski, ja starp diviem datu avotiem jau pastāv relācija, ko izmantojat vaicājumā. Savienojums tiek izveidots arī tad, ja ir lauki, kas skaidri atbilst viens otram. Jūs varat izdzēst automātiski izveidotu savienojumu. Šajā rakstā sniegta pamatinformācija par tabulu relācijām, tostarp par to, kā to izveidot.

Piezīme.: Vaicājumus var savienot tāpat kā tabulas, un tos var arī savienot.

Šajā rakstā

Pārskats

Datu bāze ir datu tabulu kolekcija, kurās ir loģiskas relācijas savā starpā. Relācijas izmanto, lai savienotu tabulas pēc tiem kopīgiem laukiem. Tabula var būt relāciju jebkura skaita daļa, bet relācijām vienmēr ir tieši divas tabulas. Vaicājumā relācija tiek attēlota ar savienojumu.

Kad pievienojat tabulas vaicājumam, Access izveido savienojumus, kuru pamatā ir relācijas, kas ir definētas starp tabulām. Savienojumus vaicājumos var izveidot manuāli, pat ja tie neatstās jau definētās relācijas. Ja kā vaicājuma datu avotus izmantojat citus vaicājumus (nevis tabulas vai papildus tām), varat izveidot savienojumus starp avota vaicājumiem un arī starp šiem vaicājumiem un tabulām, kuras izmantojat kā datu avotus.

Savienojumi darbojas līdzīgi vaicājuma kritērijiem, jo tie izveido kārtulas, kurām dati ir jāatbilst, lai tie tiktu iekļauti vaicājuma operācijās. Atšķirībā no kritērijiem savienojumi arī norāda, ka katrs rindu pāris, kas atbilst savienošanas nosacījumiem, tiek apvienots ierakstkopā, lai veidotu vienu rindu.

Pastāv četri pamatelementu savienojumu tipi: iekšējie savienojumi, ārējie savienojumi, krusteniskā savienojuma un nevienlīdzīgie savienojumi. Šajā rakstā aprakstīts, kāda veida savienojumus varat izmantot, kāpēc jāizmanto katrs savienojumu tips un kā izveidot savienojumus.

Savienojumi ir vaicājumi, kādi relācijas ir ar tabulām: norāde par to, kā datus divos avotos var apvienot, pamatojoties uz to kopējām datu vērtībām. Lūk, attēls ar savienojumu vaicājuma noformējuma skatā, kurā savienojuma rekvizīti ir atvērti dialoglodziņā:

Lodziņš Savienojuma rekvizīti

Šī līnija starp tabulām apzīmē savienošanu. Veiciet dubultklikšķi uz savienojuma, lai atvērtu dialoglodziņu Savienojuma rekvizīti (attēlots) un pārskatītu vai mainītu savienojumu.

Savienojumi dažreiz ir norādes. Šajā dialoglodziņa apgabalā ir redzams, kura tabula ir savienojuma tabula un kuri lauki tiek izmantoti, lai savienotu tabulas.

Šis apgabals nosaka savienojuma tipu: 1. opcija ir iekšējais savienojums, 2 ir kreisais ārējais savienojums, un 3 ir labais ārējais savienojums.

Var izmantot abu tabulu laukus, un no katras no kurām tiek parādīti dati, kas attiecas uz konkrētu uzdevumu. Iekšējā savienojuma gadījumā citi dati netiek iekļauti. Ārējā savienojuma vaicājumos tiek iekļauti arī nesaistīti ieraksti no vienas tabulas.

Uz lapas sākumu

Savienojumu tipi

Pastāv četri pamatelementu savienojumu tipi: iekšējie savienojumi, ārējie savienojumi, krusteniskā savienojuma un nevienlīdzīgie savienojumi. Krusteniskā savienojuma un nevienlīdzīgie savienojumi ir papildu savienojumu tipi un tiek reti izmantoti, bet jums ir jāzina, kā tie pilnībā izprot pievienošanās darbību.

Iekšējie savienojumi: tikai saistītie dati no abām tabulām kopā

Iekšējais savienojums ir viens savienojums, kurā Access iekļauj tikai datus no tabulas, ja saistītajā tabulā ir atbilstoši dati un otrādi. Lielākajā daļā gadījumu ir jālieto iekšējie savienojumi. Ja veidojat savienojumu un nenorādāt, kāda veida savienojums ir, Access pieņem, ka vēlaties izveidot iekšējo savienojumu. Iekšējie savienojumi ir noderīgi, jo tie ļauj apvienot datus no diviem avotiem, pamatojoties uz koplietojamām vērtībām, lai dati būtu pieejami tikai tad, ja ir redzams pilnīgs attēls.

Ārējie savienojumi: visi saistītie dati ir pareizi apvienoti, kā arī visi atlikušie ieraksti no vienas tabulas

Ārējais savienojums ir kā iekšējais savienojums, bet pievieno pārējās rindas no vienas no tabulām. Ārējie savienojumi ir virzienā: kreisais ārējais savienojums ietver visus ierakstus no kreisās tabulas — savienojuma pirmajā tabulā — un labajā ārējā savienojuma ir iekļauti visi ieraksti no labās tabulas — savienojuma otrā tabula.

Full outer joins: all the data, combined where feasible

Dažās sistēmās ārējā savienojumi var ietvert visas rindas no abām tabulām, kopā rindas pēc to atbilstības. To sauc par pilnu ārējo savienojumu, un Access tās neatbalsta tieši. Taču varat izmantot krusteniskā savienojuma un kritēriju, lai iegūtu to pašu efektu.

Cross joins: all the data, combined every possible way

Lielākajā daļā gadījumu krusteniskā savienojuma efekts ir divu tabulu pievienošanas vaicājumam un pēc tam aizmirst par to savienošanu. Programma Access interpretē to, ka vēlaties skatīt visus ierakstus no vienas tabulas kopā ar katru ierakstu no otras tabulas — katru iespējamo ierakstu kombināciju. Tā kā datus nevar apvienot, šāda veida savienojums reti rada noderīgus rezultātus. Taču dažos gadījumos šķērssa savienojums ir tikai jums nepieciešams.

Nevienlīdzīgi savienojumi: kā parasts savienojums, bet cits salīdzinājums rindu apvienošanai

Nevienlīdzīgi savienojumi izmanto citu operatoru, nevis vienādības zīmi (=), lai salīdzinātu vērtības un noteiktu, vai un kā apvienot datus. Nevienlīdzīgi savienojumi netiek īpaši atbalstīti, taču varat izmantot krusteniskā savienojuma un kritēriju, lai iegūtu to pašu efektu.

Rindu, kuru kopējā vērtība pastāv abās savienotās tabulās, paslēpšana

Ja vēlaties parādīt tikai tās rindas, kurām ir atbilstošās vērtības savienotā laukā, izmantojiet iekšējo savienojumu. Programma Access automātiski izveido iekšējos savienojumus.

Iekšējais savienojums ir izplatītākais savienojumu tips. Tās norāda vaicājumam, ka rindas no vienas no savienotām tabulām atbilst otras tabulas rindām, pamatojoties uz datiem savienotos laukos. Izpildot vaicājumu ar iekšējo savienojumu, vaicājumu operācijās tiks iekļautas tikai tās rindas, kurās pastāv kopīga vērtība abās savienotās tabulās.

Kā izmantot iekšējo savienojumu?

Lielākajā daļā gadījumu jums nekas nav jādara, lai izmantotu iekšējo savienojumu. Ja tabulām, kuras pievienojat vaicājumam, jau ir relācijas, Access automātiski izveido iekšējo savienojumu starp katru saistīto tabulu pāri, kad pievienojat tabulas. Ja atsauču integritāte ir spēkā, Access parāda arī "1" virs savienotājlīnijas, lai parādītu, kura tabula atrodas attiecība viens pret daudziem pusē "viens", un bezgalības simbolu (), lai parādītu, kura tabula atrodas pusē "daudzi".

Pat tad, ja neesat izveidojis relācijas, Access automātiski izveido iekšējos savienojumus, ja vaicājumā pievienojat divas tabulas un katrā tabulā ir lauks ar vienādu vai saderīgu datu tipu un viens no savienotajiem laukiem ir primārā atslēga. Šajā gadījumā netiek rādīti simboli "viens" un "daudzi", jo attiecinošā integritāte nav iespējota.

Ja vaicājumam pievienojat vaicājumus un starp šiem vaicājumiem nav izveidotas relācijas, Access starp šiem vaicājumiem vai starp vaicājumiem un tabulām automātiski neizveidojiet iekšējos savienojumus. Parasti izveidojiet tos pats. Varat izveidot iekšējo savienojumu, velkot lauku no viena datu avota uz lauku citā datu avotā. Programma Access parāda līniju starp abiem laukiem, lai parādītu, ka savienojums ir izveidots.

SQL sintakse iekšējam savienojumam

Iekšējie savienojumi ir norādīti SQL klauzulā FROM, kā parādīts tālāk:

FROM tabula1 INNER JOIN tabula2 ON tabula1.lauks1 salīdzināt tabulu2.lauks2

Operācijai INNER JOIN ir šādi elementi:

Daļa

Apraksts

tabula1, tabula2

To tabulu nosaukumi, kuru ieraksti tiek apvienoti.

1.lauks, 2.lauks

Savienoto lauku nosaukumi. Ja tie nav skaitliski, laukiem jābūt ar vienādu datu tips un jāsatur viena veida dati, taču nav jābūt ar vienu nosaukumu.

salīdzināt

Jebkurš no relāciju salīdzināšanas operatoriem: \ldblquote =,\rdblquote \ldblquote <,\rdblquote \ldblquote >,\rdblquote \ldblquote <=,\rdblquote \ldblquote >=\rdblquote vai \ldblquote <>\rdblquote .

Papildinformāciju par iekšējo savienojumu sintaksi skatiet tēmā Operācija INNER JOIN.

Uz lapas sākumu

Visu rindu no vienas tabulas un atbilstošo rindu no otras tabulas slaidrāde

Ārējie savienojumi norāda vaicājumam, ka, lai gan dažas rindas abās savienojuma pusēs precīzi atbilst, vaicājumā ir jāiekļauj visas rindas no vienas tabulas, kā arī tās rindas no otras tabulas, kurām ir kopīga vērtība abās savienojuma pusēs.

Ārējie savienojumi var būt kreisi ārējie savienojumi vai arī labi ārējie savienojumi. Kreisajā ārējā savienojuma vaicājumā tiek iekļautas visas rindas no sql priekšraksta FROM klauzulas PIRMĀS tabulas, kā arī tikai tās rindas no citas tabulas, kur savienotajā laukā ir vērtības, kas kopīgas abām tabulām. Labā ārējā savienojuma vaicājumā tiek iekļautas visas rindas no otrās tabulas klauzulā SQL priekšraksts FROM, kā arī tikai tās rindas no citas tabulas, kur savienotajā laukā ir vērtības, kas kopīgas abām tabulām.

Piezīme.: To, kura tabula ir kreisā tabula vai labā tabula konkrētā savienojuma tabulā, var viegli noteikt, veicot dubultklikšķi uz savienojuma un pēc tam aplūkojot dialoglodziņu Savienojuma rekvizīti. Varat arī pārslēgties uz SQL skatu un pēc tam pārbaudīt klauzulu FROM.

Tā kā dažām ārējā savienojuma rindām nebūs atbilstošu rindu no otras tabulas, daži no vaicājuma rezultātos atgrieztajiem laukiem no otras tabulas būs tukši, ja rindas neatbilst.

Kā izmantot ārējo savienojumu?

Ārējā savienojuma izveide tiek izveidota, modificējot esošu iekšējo savienojumu. Ja nepastāv iekšējais savienojums, izveidojiet to un pēc tam mainiet to uz ārējo savienojumu.

Iekšējā savienojuma maiņa uz ārējo savienojumu

  1. Vaicājuma noformējuma skatā veiciet dubultklikšķi uz savienojuma, kuru vēlaties mainīt.

    Tiek parādīts dialoglodziņš Savienojuma rekvizīti.

  2. Dialoglodziņā Savienojuma rekvizīti ņemiet vērā izvēles blakus 2. opcijai un 3. opcijai.

  3. Noklikšķiniet uz tās opcijas, kuru vēlaties lietot un pēc tam uz Labi.

  4. Programma Access parāda savienošanu un parāda bultiņu, kas norāda no datu avota, kur visas rindas tiks iekļautas datu avotā, kur tiks iekļautas tikai tās rindas, kas apmierina savienojuma nosacījumu.

Neviennozīmīgi ārējie savienojumi

Ja izveidojat vaicājumu, kas satur LEFT JOIN un INNER JOIN, Access, iespējams, nevarēs noteikt, kura savienojuma darbība ir jāveic vispirms. Rezultāti atšķiras atkarībā no tā, vai vispirms tiek veikta kreisā savienojuma vai iekšējā savienojuma, programma Access parāda kļūdas ziņojumu:

Lai labotu šo kļūdu, modificējiet vaicājumu, lai būtu skaidrs, kuru savienojumu veikt vispirms.

SQL sintakse ārējai savienojumam

Ārējie savienojumi ir norādīti SQL klauzulā FROM, kā parādīts tālāk:

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

Operācijām LEFT JOIN un RIGHT JOIN ir šādas daļas:

Daļa

Apraksts

tabula1, tabula2

To tabulu nosaukumi, kuru ieraksti tiek apvienoti.

1.lauks, 2.lauks

To lauku nosaukumi, kas tiek savienoti. Laukos ir jābūt vienādam datu tips un tajos jābūt vienāda veida datiem, taču to nosaukumiem nav jābūt vienādiem.

salīdzināt

Jebkurš no relāciju salīdzināšanas operatoriem: \ldblquote =,\rdblquote \ldblquote <,\rdblquote \ldblquote >,\rdblquote \ldblquote <=,\rdblquote \ldblquote >=\rdblquote vai \ldblquote <>\rdblquote .

Papildinformāciju par ārējās savienojuma sintaksi skatiet tēmā Operācijas LEFT JOIN, RIGHT JOIN.

Uz lapas sākumu

Parādiet visas rindas no abām tabulām un savienojiet tās, ja pastāv kopīga vērtība.

Ja vēlaties parādīt visas rindas no divām tabulām un tās savienot, pamatojoties uz kopīgām vērtībām, izmantojiet pilnu ārējo savienojumu. Access neatbalsta pilnus ārējos savienojumus, bet to pašu efektu var panākt, izmantojot apvienotu vaicājumu. Tālāk ir paskaidrots, kā to paveikt, bet, ja vēlaties saņemt papildinformāciju par apvienošanas vaicājumiem, skatiet sadaļu Skatiet arī.

Lai izmantotu apvienotu vaicājumu, lai veiktu pilnu ārējo savienojumu:

  1. Izveidojiet vaicājumu, kuram ir kreisais ārējais savienojums laukā, kuru vēlaties izmantot pilnai ārējai savienojumam.

  2. Cilnes Sākums grupā Skati noklikšķiniet uz Skats un pēc tam uz SQL skats.

  3. Nospiediet taustiņu kombināciju CTRL+C, lai nokopētu SQL kodu.

  4. Izdzēsiet semikolu klauzulas FROM beigās un pēc tam nospiediet taustiņu ENTER.

  5. Ierakstiet UNION un pēc tam nospiediet taustiņu ENTER.

    Piezīme.: Nelietojiet atslēgvārdu ALL, ja izmantojat apvienotu vaicājumu, lai veiktu pilnu ārējo savienojumu.

  6. Nospiediet taustiņu kombināciju CTRL+V, lai ielīmētu 3. darbībā nokopēto SQL kodu.

  7. Ielīmētā kodā mainiet LEFT JOIN uzRIGHT JOIN.

  8. Izdzēsiet semikolu otrās klauzulas FROM beigās un pēc tam nospiediet taustiņu ENTER.

  9. Pievienojiet klauzulu WHERE, kas norāda, ka savienojuma lauka vērtība ir NULL pirmajā tabulā, kas norādīta klauzulā FROM (kreisajā tabulā).

    Piemēram, ja klauzula FROM ir:

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

    Ir jāpievieno šāda klauzula WHERE:

    WHERE Products.ID IS NULL

  10. Ierakstiet semikolu (;) klauzulas WHERE beigās, lai norādītu union vaicājuma beigas.

  11. Cilnes Noformējums grupā Rezultāti noklikšķiniet uz Izpildīt.

Krusteniskā savienojuma

Krusteniskā savienojuma atšķiras no iekšējiem un ārējiem savienojumiem ar to, ka tie nav tieši attēloti Access. Krusteniskā savienojuma gadījumā katra rinda no vienas tabulas tiek apvienota ar katru rindu no citas tabulas, rezultātā tiek dēvēts par krusteniskā produkta vai Deijas produktu. Katru reizi, izpildot vaicājumu, kurā ir tabulas, kuras nav tieši savienotas, tiek iegūts krustenēts produkts. Šķērssavienoņi parasti ir netīši, bet ir gadījumi, kad tie var būt noderīgi.

Kāpēc ir jāizmanto krusteniskā savienojuma?

Ja vēlaties izpētīt visas iespējamās rindu kombinācijas starp divām tabulām vai vaicājumiem, izmantojiet krusteniskā savienojuma. Piemēram, jūsu uzņēmumam ir bijis iespaidīgs gads, un jūs apsverat iespēju saviem klientiem piešķirt atlaides. Varat izveidot vaicājumu, kas summē katra klienta pirkumus, izveidot nelielu tabulu, kurā ir vairākas iespējamās atlaižu procentuālās vērtības, un apvienot abus citā vaicājumā, kas veic šķērssavienojumu. Tiek izpildīts vaicājums, kas parāda hipotētisko atlaižu kopu katram klientam.

Kā izmantot krusteniskā savienojuma?

Krustvaicājums ir izveidots jebkurā laikā, kad vaicājumā iekļaujat tabulas vai vaicājumus un neizveidojiet vismaz vienu tiešu savienojumu katrai tabulai vai vaicājumam. Programma Access apvieno katru rindu no katras tabulas vai vaicājuma, kas nav tieši savienots ar citu tabulu vai vaicājumu ar katru citu rindu rezultātos. Apsveriet atlaides scenāriju no iepriekšējās rindkopas. Pieņemsim, ka jums ir 91 klients un vēlaties skatīt piecas iespējamās atlaižu procentuālās vērtības. Krusteniskā savienojuma iegūtās 455 rindas (91 un 5 reizc) ir 455 rindas.

Kā jau iedomājieties, netīšie krusteniskā savienojumi vaicājuma rezultātos var radīt ārkārtīgi daudz rindu. Turklāt šiem rezultātiem parasti nav nozīmes, jo, ja nav paredzēts apvienot katru rindu ar katru otro rindu, lielākā daļa kombinēto rindu, kas parādās rezultātos, nebūs jēgas. Visbeidzot, vaicājumiem, kuri izmanto netīšus krusteniskā savienojuma savienojumus, var būt nepieciešams ļoti ilgs laiks.

Netīšais krusteniskais savienojums vaicājumā noformējuma skatā

1. Apvilktajiem laukiem jābūt savienotiem viens ar otru.

Netīšais krusteniskais produkts

1. Ievērojiet ļoti daudz ierakstu.

Izlabotā vaicājuma rezultāts

1. Ievērojiet, ka ierakstu skaits ir daudz mazāks.

Uz lapas sākumu

Tabulu savienojuma izveide, pamatojoties uz nekvalificētu lauka vērtību

Savienojumiem nav balstīts uz pievienoto lauku ekvivalenci. Savienojuma pamatā var būt salīdzināšanas operators, piemēram, lielāks par (>), mazāks par (<) vai nav vienāds ar (<>). Savienojumi, kuru pamatā nav ekvivalences, tiek dēvēti par nevienlīdzīgiem savienojumiem.

Ja vēlaties apvienot divu datu avotu rindas, pamatojoties uz lauku vērtībām, kas nav vienādas, izmantojiet nevienlīdzīgu savienojumu. Parasti nevienlīdzīgie savienojumi ir balstīti uz vairāk nekā (>), mazāk nekā (<), lielāks vai vienāds ar (>=) vai mazāks vai vienāds ar (<=) salīdzinājuma operatoriem. Nevienlīdzīgi savienojumi, kuru pamatā ir operators nav vienāds ar (<>) var atgriezt gandrīz tik daudz rindu kā krusteniskā savienojuma, un rezultātus var būt grūti interpretēt.

Kā izmantot nevienlīdzīgu savienojumu?

Noformējuma skatā netiek atbalstīti nevienlīdzīgi savienojumi. Ja vēlaties tās izmantot, tas ir jādara, izmantojot SQL skatu. Tomēr varat izveidot savienojumu noformējuma skatā, pārslēgties uz SQL skatu, atrast vienādības (=) salīdzinājuma operatoru un mainīt to uz operatoru, kuru vēlaties izmantot. Kad tas ir izdarīts, vaicājumu noformējuma skatā var atvērt tikai tad, ja vispirms nomaināt salīdzināšanas operatoru atpakaļ uz vienāds ar (=) SQL skatā.

Savienojuma dzēšana

Ja Access automātiski izveido nevajadzīgu savienojumu vai savienojums tiek izveidots kļūdas dēļ, piemēram, savienojums starp diviem laukiem, kuros nav atšķirīgi datu tipi, savienojumu var izdzēst.

  1. Vaicājuma noformējuma režģī noklikšķiniet uz savienojuma, kuru vēlaties noņemt.

  2. Nospiediet taustiņu DELETE.

- vai -

  • Vaicājuma noformējuma režģī ar peles labo pogu noklikšķiniet uz savienojuma, ko vēlaties noņemt, un pēc tam noklikšķiniet uz Dzēst.

Uz lapas sākumu

Ierakstu pievienošana tabulai

pievienošanas vaicājumu Vairāku atlases

, rediģēšana vai dzēšana

Nepieciešama papildu palīdzība?

Vēlaties vairāk opciju?

Izpētiet abonementa priekšrocības, pārlūkojiet apmācības kursus, uzziniet, kā aizsargāt ierīci un veikt citas darbības.

Kopienas palīdz uzdot jautājumus un atbildēt uz tiem, sniegt atsauksmes, kā arī saņemt informāciju no ekspertiem ar bagātīgām zināšanām.