Tabulu un vaicājumu savienojumi

Svarīgi! :  Šis raksts ir mašīntulkots, skatiet atrunu. Lūdzu, skatiet šī raksta versiju angļu valodā šeit jūsu informācijai.

Kad Access vaicājumu iekļaujat vairākiem datu avotiem, izmantojiet savienojumi, lai ierobežotu ierakstus, kurus vēlaties skatīt, ņemot vērā kā datu avoti ir saistītas ar otru. Jūs arī izmantot savienojumi apvienot ierakstus no abiem datu avotiem, tā, ka katrs pāris ierakstus no avotiem kļūst vienā ierakstā vaicājuma rezultātus.

Šajā rakstā aplūkoti dažādi savienojumu tipi un parādīts, kā tos lietot vaicājumā. Pēc noklusējuma savienojuma tiek automātiski izveidota, ja jau ir relācijas starp divām datu avotiem, ko izmantot vaicājumā. Savienojuma izveides arī, ja pastāv lauki, kas skaidri atbilst viens otram. Varat izdzēst automātiski izveidots savienojums. Šajā rakstā ir sniegta pamatinformācija par tabulu relācijām, tostarp, kā to izveidot.

Piezīme : Jūs varat pievienoties vaicājumu tāpat, kā savienot tabulas, un varat arī pievienoties abas.

Šajā rakstā

Pārskats

Savienojumu tipi

Rādīt rindas, kurās ir kopēja vērtība abās saistītajās tabulās

Rādīt visas rindas no vienas tabulas un atbilstošās rindas no otras tabulas

Rādīt visas rindas no abu tabulu un pievienoties tām, kurās ir kopēja vērtība pastāv

Krusteniskie savienojumi

Saistiet tabulas, ņemot vērā lauku vērtību nevienlīdzības

Savienojuma dzēšana

Pārskats

Datu bāzes ir dati, kas sedz loģiskas relācijas ar otru tabulu kolekcija. Jūs izmantošana saziņai tabulu ar laukiem, kas viņus interesējošas relācijas. Tabulu var būt daļa no relācijas, bet relācijai vienmēr ir tieši divas tabulas. Vaicājumā, relācija tiek attēlota savienojuma.

Kad tabulas pievienošana vaicājumam Access izveido savienojumi, kas ir balstīti uz relācijām, kuras ir definētas starp tabulām. Savienojumus vaicājumos var izveidot manuāli, pat ja tie nepārstāv relācijām, kuras jau ir definētas. Ja izmantojat citu vaicājumu (nevis vai papildus tabulām) kā datu avots vaicājumu, varat izveidot savienojumus starp avota vaicājumiem, kā arī starp šiem vaicājumiem un ikvienu tabulu, kas tiek lietota kā datu avots.

Savienojumi darbojas līdzīgi vaicājuma kritērijiem, ka tās izveido kārtulas, kuras dati ir jāatbilst iekļaujamo vaicājuma darbības. Atšķirībā no kritērijiem, savienojumi arī norāda, ka katrs pāris rindas, kas atbilst savienojuma nosacījumi tiks apvienota ierakstkopā, lai veidotu vienu rindu.

Ir četri galvenie savienojumu tipi: iekšējie savienojumi, ārējie savienojumi, krusteniskie savienojumi un nevienlīdzīgie savienojumi. Šajā rakstā ir aplūkots katra veida savienojums, varat izmantot, kāpēc jālieto katra veida un kā izveidot savienojumus.

Savienojumi vaicājumiem ir tas pats, kas relācijas tabulām: norāde, kā var apvienot divos avotos esošos datus atbilstoši to kopējām datu vērtībām. Šeit varat aplūkot ilustrāciju, kurā ir parādīts savienojums vaicājuma noformējuma skatā ar dialoglodziņā atvērtiem savienojuma rekvizītiem.

Lodziņš Savienojuma rekvizīti

Šajā līnija starp tabulām ir pievienoties. Veiciet dubultklikšķi uz savienojuma, lai atvērtu Savienojuma rekvizīti dialoglodziņā (attēlots) un pārskatīšana vai mainīšana pievienoties.

Savienojumiem dažkārt ir virziens. Šajā dialoglodziņa apgabalā var redzēt, kuras tabulas ir savienojumā un kuri lauki ir izmantoti tabulu savienošanai.

Šajā apgabalā tiek noteikts savienojuma tips: 1. opcija ir iekšējs savienojums, 2. opcija ir kreisais ārējais savienojums un 3. opcija ir labais ārējais savienojums.

Var izmantot abu tabulu laukus, un no katra lauka tiek parādīti dati, kas attiecas uz attiecīgo uzdevumu. Iekšējā savienojumā netiek iekļauti citi dati. Ārējā savienojumā vaicājuma rezultātos tiek iekļauti arī nesaistīti ieraksti no vienas tabulas.

Uz lapas sākumu

Savienojumu tipi

Ir četri galvenie savienojumu tipi: iekšējie savienojumi, ārējie savienojumi, krusteniskie savienojumi un nevienlīdzīgie savienojumi. Krusteniskie savienojumi un nevienlīdzīgie savienojumi ir sarežģīti savienojumu tipi un tiek izmantoti ļoti reti, tomēr jums vajadzētu tos apgūt, lai pilnībā izprastu savienojumu darbību.

Iekšējie savienojumi: tiek apvienoti tikai saistīti dati no abām tabulām.

Iekšējs savienojums ir savienojums, kurā programma Access iekļauj datus no tabulas tikai tad, ja saistītajā tabulā ir atbilstoši dati un pretēji. Jūs galvenokārt izmantosit iekšējos savienojumus. Ja izveidojat savienojumu un nenorādāt tā veidu, Access uzskata, ka vēlaties izveidot iekšēju savienojumu. Iekšējie savienojumi ir noderīgi, jo ļauj jums apvienot datus no diviem avotiem, pamatojoties koplietotajām vērtībām — dati būs redzami, ja izpildīti visi priekšnoteikumi.

Ārējie savienojumi: pareizi apvienoti visi saistītie dati un pārējie vienas tabulas ieraksti.

Ārējais savienojums ir līdzīgs iekšējam savienojumam, bet pievieno vienas tabulas atlikušās rindas. Ārējiem savienojumiem ir virziens: kreisā ārējā savienojumā ir iekļauti visi ieraksti no kreisās tabulas — pirmās tabulas savienojumā; labajā ārējā savienojumā ir iekļauti visi ieraksti no labās tabulas — otrās tabulas savienojumā.

Pilni ārējie savienojumi: visi dati, apvienoti, ja iespējams

Dažās sistēmās ārējā savienojumā var būt iekļautas visas rindas no abām tabulām, ar apvienotām atbilstošajām rindām. Tas tiek saukts par pilnu ārēju savienojumu, un Access pilnībā neatbalsta šo savienojumu veidu. Tomēr, lai panāktu šādu efektu, varat izmantot krustenisko savienojumu un kritērijus.

Krusteniskie savienojumi: visi dati, apvienoti visos iespējamajos veidos.

Krustenisks savienojums galvenokārt rodas kā blakusefekts, ja vaicājumam tiek pievienotas divas tabulas un aizmirst tās savienot. Access šādā gadījumā uzskata, ka vēlaties, lai katrs vienas tabulas ieraksts tiktu apvienots ar katru otras tabulas ierakstu, iegūstot visas iespējamās ierakstu kombinācijas. Tā kā nav apvienojamu datu, šāda veida savienojumi reti sniedz noderīgus rezultātus. Tomēr dažkārt krusteniskais savienojums ir tieši tas, kas vajadzīgs.

Nevienlīdzīgie savienojumi: līdzīgi parastajiem savienojumiem, bet izmanto atšķirīgu apvienoto rindu salīdzināšanas veidu.

Nevienlīdzīgie savienojumi izmanto operatoru, kas atšķiras no vienlīdzības zīmes (=), lai salīdzinātu vērtības un noteiktu, vai un kā apvienot datus. Nevienlīdzīgiem savienojumiem netiek nodrošināts pilns atbalsts, bet, lai panāktu šādu efektu, varat izmantot krustenisko savienojumu un kritērijus.

Rādīt rindas, kurās ir kopēja vērtība abās saistītajās tabulās

Ja vēlaties, lai tiktu rādītas tikai rindas, kurām ir atbilstošas vērtības savienotajā laukā, izmantojiet iekšējo savienojumu. Access iekšējos savienojumus izveido automātiski.

Iekšējie savienojumi ir izplatītākais savienojuma tips. Tās vaicājumam kādā rindas no kādas saistītajās tabulās atbilst rindām otras tabulas, pamatojoties uz Savienoto lauku datiem. Kad tiek palaists vaicājums ar iekšējo savienojumu, vaicājuma operācijās tiek iekļautas tikai tās rindas, kurās ir kopēja vērtība abās saistītajās tabulās.

Kā lietot iekšējo savienojumu?

Lai lietotu iekšējo savienojumu, vairākumā gadījumu nekas nav jādara. Ja tabulām, kuras pievienojat vaicājumam, jau ir izveidotas relācijas, pievienojot tabulas, Access automātiski izveido savienojumu starp katru saistīto tabulu pāri. Ja ir iespējota atsauču integritāte, Access virs savienotājlīnijas parāda arī ciparu ''1'', lai norādītu, kura tabula atrodas attiecība viens pret daudziem pusē ''viens'', un bezgalības simbolu (), lai norādītu, kura tabula atrodas pusē ''daudzi''.

Pat tad, ja nav izveidota relācijas, programma Access automātiski izveido iekšējie savienojumi, ja divu tabulu pievienošana vaicājumam un katra šajās tabulās ir lauks ar vienu un to pašu vai saderīgu datu tipu un viens no savienojamos laukus ir primārā atslēga. "Viens" un "daudzi" simboli netiek rādīti šajā gadījumā, jo attiecinošā integritāte nav iespējota.

Ja savam vaicājumam pievienot vaicājumus un starp šiem vaicājumiem nav izveidotas relācijas, Access automātiski neveido iekšējie savienojumi starp šiem vaicājumiem vai starp vaicājumiem un tabulām. Parasti, tos ir jāveido jums pašam. Iekšējo savienojumu var izveidot, velkot lauku no viena datu avota lauku citā datu avotā. Programma Access parāda līnija starp divu laukus, lai parādītu, ka savienojums ir izveidots.

Iekšējā savienojuma SQL sintakse

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

FROM table1 INNER JOIN Tabula2 ieslēgts table1. Lauks1 salīdzināt Tabula2. 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ājums

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

Rādīt visas rindas no vienas tabulas un atbilstošās rindas no otras tabulas

Ārējie savienojumi vaicājumam, lai gan dažas rindas abās pusēs savienojuma precīzi atbilst, vaicājumā jāiekļauj visas rindas no vienas tabulas, un arī tās rindas no otras tabulas, kas ir kopēja vērtība abās pusēs savienojuma koplietošana.

Ārējie savienojumi var būt kreisie ārējie savienojumi vai labie ārējie savienojumi. Kreisajā ārējā savienojumā vaicājums SQL priekšraksta klauzulā FROM iekļauj visas rindas no pirmās tabulas, un tikai tās rindas no citas tabulas, kuru apvienotajā laukā ir vērtības, kas kopīgas abām tabulām. Labajā ārējā savienojumā vaicājums SQL priekšraksta klauzulā FROM iekļauj visas rindas no otras tabulas, un tikai tās rindas no citas tabulas, kuru apvienotajā laukā ir vērtības, kas kopīgas abām tabulām.

Piezīme : Jūs varat viegli noteikt, kura tabula ir tabula pa kreisi vai pa labi tabulas konkrētā savienojumā, veicot dubultklikšķi uz savienojuma un pēc tam meklē dialoglodziņā Savienojuma rekvizīti . Varat arī pārslēgties uz SQL skats un pēc tam pārbaudīt klauzulu FROM.

Ņemot vērā, ka dažām rindām vienā ārējā savienojuma pusē nav atbilstošu rindu citā tabulā, daži vaicājuma rezultātos no šīs citas tabulas atgrieztie lauki ir tukši, ja rindas neatbilst.

Kā ir jālieto ārējais savienojums?

Ārējie savienojumi ir jāveido, modificējot esošus iekšējos savienojumus. Ja nepastāv neviens iekšējs savienojums, izveidojiet savienojumu un mainiet uz ārēju savienojumu.

Iekšējā savienojuma mainīšana uz ārējo savienojumu

  1. 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 ievērojiet izvēles, kuras ir norādītas blakus opciju 2 un opciju 3.

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

  4. Programma Access parāda savienojumu un bultiņu, kas norāda no datu avota, kurā tiks iekļautas visas rindas, uz datu avotu, kurā tiks iekļautas tikai tās rindas, kas apmierina savienojuma nosacījumus.

Neviennozīmīgi ārējie savienojumi

Ja veidojat vaicājumu, kurā ir LEFT JOIN un iekšējais savienojums, Access nevar noteikt, kura darbību veikšanai vispirms pievienoties. Tā kā rezultāti atšķiras atkarībā no tā, vai kreisā savienojuma vai iekšējais savienojums tiek veikta pirmo reizi, programmā Access tiek parādīts kļūdas ziņojums:

Lai izlabotu šo kļūdu, jums jāmaina vaicājumu tā, lai būtu skaidri norādīts, kurš savienojums ir izpildāms vispirms.

Ārējā savienojuma SQL sintakse

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

FROM table1 [pa kreisi | Pa labi] JOIN Tabula2
uz table1.field1 salīdzināt 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ājums

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

Lai iegūtu papildinformāciju par ārējo savienojumu sintaksi, skatiet tēmu LEFT JOIN, RIGHT JOIN darbības.

Uz lapas sākumu

Rādīt visas rindas no abu tabulu un pievienoties tām, kurās ir kopēja vērtība pastāv

Ja vēlaties, lai tiktu parādītas visas rindas no divām tabulām un pievienoties tām, ņemot vērā kopējās vērtības, izmantojiet pilna ārējā savienojuma izpildē. Access tieši neatbalsta pilnu ārējie savienojumi, bet, lai panāktu šādu efektu, izmantojot apvienošanas vaicājumu. Nākamajā procedūrā ir paskaidrots, kā paveikt, bet, ja vēlaties iegūt papildinformāciju par apvienošanas vaicājumu izveidi skatiet sadaļā Skatiet arī .

Lai izmantotu apvienošanas vaicājumu izmantojat pilna ārējā savienojuma izpildē:

  1. Izveidojiet vaicājumu, kur kreisais ārējais savienojums ir laukā, kuru vēlaties izmantot pilnam ārējam 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 kopētu SQL kodu.

  4. Dzēst klauzulas FROM beigās esošo semikolu 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 apvienošanas vaicājumu izmantojat pilna ārējā savienojuma izpildē.

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

  7. Ielīmētajā kodā atslēgvārdus LEFT JOIN nomainiet uz RIGHT JOIN.

  8. Dzēst semikolu beigās otrā klauzula un pēc tam nospiediet taustiņu ENTER.

  9. Pievienojiet klauzulu WHERE, kas norāda, ka klauzulā FROM norādītās pirmās (kreisās) tabulas savienojuma lauka vērtība ir NULL.

    Piemēram, ja klauzula FROM ir šāda:

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

    Varat pievienot šādu klauzulu WHERE:

    WHERE Products.ID IS NULL

  10. Klauzulas WHERE beigās ierakstiet semikolu (;), lai norādītu apvienošanas vaicājuma beigas.

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

Krusteniskie savienojumi

Krusteniskie savienojumi atšķiras no iekšējiem un ārējiem savienojumos ar to, ka tie nav skaidri iekļauts Access. Krusteniskais savienojums, katrā rindā no vienas tabulas ir kopā ar katru citas tabulas rindu, iegūstot to, ko sauc krusteniskais produkts vai Dekarta reizinājums. Jebkurā laikā, palaidiet vaicājumu, kurā ir tabulas, kas nav precīzi savienotas, tiek iegūts krusteniskais produkts. Parasti krusteniskie savienojumi ir, taču ir arī gadījumi, kad tie var būt noderīgi.

Kāpēc jālieto krusteniskais savienojums?

Ja vēlaties pārbaudīt visas iespējamās rindu kombinācijas starp divām tabulām vai vaicājumiem, lietojiet krustenisko savienojumu. Piemēram, pieņemsim, ka jūsu uzņēmumam ir bijis īpašie gads un jūs plānojat, piešķirot atlaides saviem klientiem. Varat izveidot vaicājumu, kas saskaita katra klienta pirkumus, izveido mazu tabulu, kurai ir vairāki iespējamie atlaidi procenti un kombinē divus citā vaicājumā, kas veic krustenisko savienojumu. Jūs beigties ar vaicājumu, kas parāda hipotētiska atlaidēm kopas katram klientam.

Kā lietot krustenisko savienojumu?

Krusteniskais savienojums tiek veidots jebkurā laikā jūs iekļaut vaicājuma tabulas vai vaicājumus un nav izveidots vismaz viens precīzs savienojums katras tabulas vai vaicājuma. Programma Access kombinē katru rindu no katras tabulas vai vaicājuma, kas nav precīzi savienota ar tabulas vai vaicājuma rezultātos visās citās rindās. Apsveriet iespēju atlaidi scenārijs no iepriekšējā punkta. Pieņemt, jums ir 91 klienti un vēlaties aplūkot piecus iespējamos atlaides procentus. Krusteniskais savienojums veido 455 rindas (91 un 5 reizinājums).

Kā iespējams iztēloties, Netīšais krusteniskie savienojumi, varat izveidot lielu skaitu rindas vaicājuma rezultātos. Turklāt, šie rezultāti ir visbiežāk nav nozīmes, jo ja jūs neplānojat faktiski katru rindu kombinēt ar visām pārējām rindām, lielākajai daļai kombinēto rindu, kuras tiek parādītas rezultātos nav nozīmes. Visbeidzot, vaicājumu, kuri izmanto Netīšais krusteniskie savienojumi prasa ilgu laiku darboties.

netīšais krusteniskais savienojums vaicājumā noformējuma skatā
Netīšais vairākās pievienoties noformējuma skatā.

1. apvilktā lauki būtu savienoti ar otru.

Netīšais krusteniskais produkts
Krusteniskais produkts atgrieza iepriekš aprakstītais netīšais krusteniskais savienojums.

1. Ievērojiet ļoti lielo ierakstu skaitu.

Izlabotā vaicājuma rezultāts
Rezultāti pēc pareizā savienojuma izveides.

1. Ņemiet vērā, ka ierakstu skaits ir daudz mazāks.

Uz lapas sākumu

Saistiet tabulas, ņemot vērā lauku vērtību nevienlīdzības

Savienojumu pamatā nav jābūt savienoto lauku ekvivalencei. Savienojums var būt pamatots uz jebkādu salīdzināšanas operatoru, piemēram, lielāks par (>), mazāks par (<) vai nav vienāds ar (<>). Savienojumi, kuri nav pamatoti uz ekvivalenci, tiek dēvēti par nevienlīdzīgiem savienojumiem.

Ja vēlaties apvienot divu datu avotu rindas, pamatojoties uz lauka vērtībām, kas nav vienādas, lietojiet nevienlīdzīgo savienojumu. Parasti nevienlīdzīgie savienojumi ir pamatoti vai nu uz salīdzināšanas operatoriem lielāks par (>), mazāks par (<), vai uz lielāks par vai vienāds ar (>=), mazāks par vai vienāds ar (<=). Nevienlīdzīgie savienojumi, kas pamatoti uz operatoru nav vienāds ar (<>), var atgriezt gandrīz tikpat daudz rindu, cik krusteniskie savienojumi, un rezultātus var būt grūti interpretēt.

Kā lietot nevienlīdzīgo savienojumu?

Nevienlīdzīgie savienojumi netiek atbalstīti noformējuma skatā. Ja vēlaties, lai tās izmantot, tas ir jādara, izmantojot SQL skats. Tomēr varat savienojuma izveide noformējuma skatā, pārslēdzieties uz SQL skats, atrast ir vienāda ar (=) salīdzinājuma operatoru un mainiet to dalībniekam, kuru vēlaties izmantot. Kad tas ir izdarīts, jūs varat tikai atveriet vaicājumu noformējuma skatā vēlreiz Ja jums pirmo mainīt salīdzinājuma operatoru atpakaļ uz ir vienāds ar (=) SQL skatā.

Savienojuma dzēšana

Ja Access automātiski izveido nevēlamu savienojumu vai savienojums tiek izveidots kļūdas rezultātā — piemēram, savienojums starp diviem laukiem, kuros ir neatbilstošu tipu dati — savienojumu varat izdzēst.

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

  2. Nospiediet Dzēst.

-vai-

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

Uz lapas sākumu

Piezīme : Mašīntulkošanas atruna. Šo rakstu ir tulkojusi datorsistēma bez cilvēka iejaukšanās. Microsoft piedāvā šos mašīntulkojumus, lai palīdzētu angliski nerunājošajiem lietotājiem izmanot saturu par Microsoft produktiem, pakalpojumiem un tehnoloģijām. Tā kā šis raksts ir mašīntulkots, tajā var būt leksikas, sintakses un gramatikas kļūdas.

Skatiet arī

Ierakstu pievienošana tabulai, izmantojot pievienošanas vaicājumu

Apvienot vairākus rezultātus atlases vaicājumu, izmantojot apvienošanas vaicājumu

Balstoties uz vairākām tabulām vaicājuma izveide

Izveide, rediģēšana vai dzēšana relācijas

Paplašiniet savas prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Office Insider programmai

Vai šī informācija bija noderīga?

Paldies par jūsu atsauksmēm!

Paldies par atsauksmēm! Šķiet, ka varētu būt noderīgi sazināties ar kādu no mūsu Office atbalsta aģentiem.

×