Apvienošanas vaicājuma izmantošana vairāku vaicājumu apvienošanai vienā rezultātā

Apvienošanas vaicājuma izmantošana vairāku vaicājumu apvienošanai vienā rezultātā

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

Pieņemsim, ka jūsu programmas Access datu bāzē ir divas nesaistītu tabulu — vienu, kas glabājas klienta datus un citu kurā glabāt datus par piegādātājiem — abās tabulās ir kontaktinformācijas lauka. Jūs vēlaties skatīt kontaktinformāciju no abām tabulām vienā skatā. Lai to izdarītu, vispirms izveidojiet atlases vaicājumu katrai tabulai, lai izgūtu kontaktinformāciju un kombinējiet šo rezultātu, izveidojot apvienošanas vaicājumu.

Piezīme : Šajā rakstā saturs ir paredzēta lietošanai ar Access datora datu bāzēm. Nevar izveidot vai apvienošanas vaicājumu Access tīmekļa datu bāzēs un Access tīmekļa lietojumprogrammās.

Vēlaties atsvaidzināt atmiņu par pamata atlases vaicājumu izveidi? Skatiet Vienkārša atlases vaicājuma izveide.

Tālāk ir sniegta pamatinformācija par apvienošanas vaicājumu izveidi.

  • Apvienošanas vaicājumā apvienotajiem atlases vaicājumiem jābūt ar vienādu izvades lauku skaitu, vienādu secību un vienādiem vai saderīgiem lauku tipiem. Izpildot apvienošanas vaicājumu, katras atbilstošās lauku kopas dati tiek apvienoti vienā izvades laukā, lai vaicājuma izvadē būtu tas pats katrā priekšrakstā SELECT iekļautais lauku skaits.

  • Apvienošanas vaicājumi ir SQL specifiski un tādēļ tie jāraksta tieši valodā SQL. SQL specifisku vaicājumu, ieskaitot apvienošanas vaicājumus, rakstīšanai izmanto SQL skatu.

1. darbība. Atlases vaicājumu izveide

Piezīme : Lai gan vaicājumā var iekļaut vairākas tabulas vai vaicājumus, šajā procedūrā tiek pieņemts, ka katrā atlases vaicājumā tiek iekļauti tikai vienas tabulas dati.

  1. Cilnes Izveide grupā Vaicājumi noklikšķiniet uz Vaicājuma noformējums.

  2. Dialoglodziņā Tabulas rādīšana veiciet dubultklikšķi uz tabulas, kuras laukus vēlaties iekļaut vaicājumā. Tabula tiks pievienota vaicājuma noformējuma logā.

  3. Aizveriet dialoglodziņu Tabulas rādīšana.

  4. Vaicājuma noformējuma logā veiciet dubultklikšķi uz katra lauka, kuru vēlaties iekļaut vaicājumā.
    Atlasot laukus, nodrošiniet, lai pārējos atlases vaicājumos tiktu pievienots vienāds lauku skaits un to kārtība būtu vienāda. Pievērsiet īpašu uzmanību katra lauka datu tipam un nodrošiniet, lai lauku datu tipi būtu saderīgi ar citos apvienošanai paredzētajos vaicājumos atbilstošajās pozīcijās esošo lauku datu tipiem. Piemēram, ja pirmajā atlases vaicājumā ir pieci lauki, no kuriem pirmajā laukā ir iekļauti datuma/laika dati, nodrošiniet, lai visos pārējos apvienošanai paredzētajos atlases vaicājumos arī būtu pieci lauki, no kuriem pirmajā laukā būtu iekļauti datuma/laika dati utt.

  5. Laukiem var pievienot kritērijus, ierakstot atbilstošu izteiksmes lauku režģa rindā kritēriji .

  6. Kad esat pabeidzis pievienot lauku un to kritēriju, izpildiet šo atlases vaicājumu un pārskatiet tā izvadi. Cilnes noformējums grupā rezultāti noklikšķiniet uz palaist.

  7. Ieslēdziet noformējuma skatu.

  8. Saglabājiet atlases vaicājumu, bet neaizveriet to.

  9. Atkārtojiet šoi procedūru ar katru apvienošanai paredzēto atlases vaicājumu.

Papildinformāciju par kritēriju izmantošanu vaicājumā skatiet rakstā kritēriju piemērošana vaicājumam.

2. darbība. Atlases vaicājumu apvienošana

Šajā darbībā, izveidojiet apvienošanas vaicājumu, izmantojot SQL priekšrakstus. (Papildinformāciju skatiet sadaļā SQL sintakse zem.)

  1. Cilnes Izveide grupā Vaicājumi noklikšķiniet uz Vaicājuma noformējums.

  2. Aizveriet dialoglodziņu Tabulas rādīšana.

  3. Cilnes Noformējums grupā Vaicājums noklikšķiniet uz Apvienošanas.

Programma Access paslēpj vaicājuma noformējuma logu un parāda SQL skata objekta cilne. Šajā brīdī SQL skata objekta cilne ir tukša.

  1. Noklikšķiniet uz pirmā atlases vaicājuma cilnes, kuru vēlaties iekļaut apvienošanas vaicājumā.

  2. Cilnē Sākums noklikšķiniet uz Skats > SQL skats.

  3. Nokopējiet atlases vaicājuma SQL priekšrakstu. Noklikšķiniet uz 1. darbībā veidot sāktās apvienošanas vaicājuma cilnes.

  4. Ielīmējiet atlases vaicājuma SQL priekšrakstu apvienošanas vaicājuma SQL skata objekta cilnē.

  5. Izdzēsiet atlases vaicājuma SQL priekšraksta beigās iekļauto semikolu (;).

  6. Nospiediet taustiņu Enter, lai kursoru pārvietotu par vienu rindu zemāk, un pēc tam jaunajā rindā ierakstiet vārdu UNION .

  7. Noklikšķiniet uz nākamā iekļaušanai apvienošanas vaicājumā paredzētā atlases vaicājuma cilnes.

  8. Atkārtojiet šīs procedūras 5.–10. darbību, līdz apvienošanas vaicājuma SQL skata logā ir nokopēti un ielīmēti visi atlases vaicājumu SQL priekšraksti. Neizdzēsiet pēdējā atlases vaicājuma SQL priekšraksta beigās esošo semikolu vai neierakstiet šajā vietā nekādas rakstzīmes.

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

Apvienošanas vaicājuma rezultāti tiek parādīti Datu lapas skats.

Uz lapas sākumu

Padomi par apvienošanas vaicājumu izveidi

  • Lai varētu izšķirt, kuras rindas ir ņemtas no kuras tabulas, pievienojiet teksta virkni kā lauku katrā no atlasītajiem priekšrakstiem.

    Piemēram, ja, izmantojot kādu atlases priekšrakstu, lauki tiek izgūti no tabulas ar nosaukumu Products (Produkti), bet, izmantojot citu atlases priekšrakstu, lauki tiek izgūti no tabulas ar nosaukumu Services (Pakalpojumi), virkni “Products” (Produkti) pievienojiet kā lauku pirmā priekšraksta beigās, bet virkni “Services” (Pakalpojumi) — otrā priekšraksta beigās. Izmantojot atslēgvārdu AS, virknēm var arī piešķirt lauka aizstājvārdu (piemēram, “type” (tips)), kā parādīts šajā piemērā:

    SELECT field1, field2, ... "Product" AS type

    SELECT field1, field2, ... "Service" AS type

    Vaicājuma izvadē būs iekļauts lauks ar nosaukumu “type” (tips), norādot, ka šī rinda ir iekļauta vai nu tabulā Products (Produkti) vai Services (Pakalpojumi).

  • Katrs atslēgvārds UNION apvieno priekšrakstus SELECT, kas atrodas tieši pirms un pēc tā. Ja vaicājumā izmantojat atslēgvārdu ALL kopā ar dažiem, bet ne visiem atslēgvārdiem UNION, rezultātos tiks iekļauti to priekšrakstu SELECT pāru rindu dublikāti, kuri ir apvienoti, izmantojot atslēgvārdus UNION ALL, bet netiks iekļauti to priekšrakstu SELECT rindu dublikāti, kuri ir apvienoti, izmantojot atslēgvārdu UNION un kam neseko atslēgvārds ALL.

  • Ir jāatbilst atlases vaicājumu lauku skaitam, datu tipam un secībai. Lai nodrošinātu šo atbilstību, varat izmantot izteiksmes, piemēram, aprēķinus vai apakšvaicājumus.

    Piemēram, divciparu gadskaitļa lauka atbilstību četrciparu gadskaitļa laukam var nodrošināt, izmantojot funkciju Pa labi, lai izvilktu pēdējos divus četrciparu gadskaitļa ciparus.

Apvienošanas vaicājuma rezultātu izmantošana jaunas tabulas izveidei

Vispirms izmantojiet apvienošanas vaicājumu kā jauna atlases vaicājuma ievadi un pēc tam šo atlases vaicājumu izmantojiet kā tabulas veidošanas vaicājumu, kā parādīts tālāk norādītās darbības:

  1. Izveidojiet un saglabājiet apvienošanas vaicājumu.

  2. Cilnē Izveidot, kas atrodas grupā Vaicājumi, noklikšķiniet uz Vaicājuma noformējums.

  3. Dialoglodziņā Tabulas rādīšana noklikšķiniet uz cilnes Vaicājumi.

  4. Veiciet dubultklikšķi uz saglabātā apvienošanas vaicājuma un pēc tam aizveriet dialoglodziņu Tabulas rādīšana.

    Piezīme : Ja ziņojumu joslā ir redzams parādīts drošības brīdinājums, darbību vaicājumi, iespējams, ir atspējoti. Lai iespējotu darbību vaicājumus, ziņojumu joslā noklikšķiniet uz Iespējot saturu.

  5. Izmantojot vaicājumu noformējuma režģi, saglabātā apvienošanas vaicājuma objekta cilnē veiciet dubultklikšķi uz zvaigznītes (*), lai jaunas tabulas izveidē lietotu visus apvienošanas vaicājuma laukus.

  6. Cilnes Noformējums grupā Vaicājuma veids noklikšķiniet uz Tabulas izveidošana.

  7. Dialoglodziņā Tabulas izveidošana ierakstiet jaunās tabulas nosaukumu.

  8. Ja vēlaties, norādiet citu datu bāzi, kurā izveidot tabulu.

  9. Noklikšķiniet uz Labi.

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

Apvienošanas vaicājumu izmantošana pilna ārējā savienojuma izpildei.

Apvienošanas vaicājumu var izmantot, lai izpildītu pilnu ārējā apvienošana. Pilns ārējais savienojums neierobežo no savienotajām tabulām atgriezto rindu skaitu, bet apvieno rindas, pamatojoties uz savienojuma lauku.

  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. Izdzēsiet klauzulas FROM beigās esošo semikolu un pēc tam nospiediet taustiņu Enter.

  5. Ierakstiet vārdu UNIONun 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. Izdzēsiet otrās klauzulas FROM beigās esošo semikolu 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.
    Apvienošanas vaicājuma rezultāti tiks parādīti Datu lapas skats.

Lai iegūtu papildinformāciju, skatiet rakstu tabulu un vaicājumu savienojumi.

Uz lapas sākumu

Uz apvienošanas vaicājumu attiecināmās prasības un tā SQL sintakse

Dažas prasības, kas attiecināmas uz apvienošanas vaicājuma izveidi

  • Apvienošanas vaicājumā apvienotajiem atlases vaicājumiem jābūt ar vienādu izvades lauku skaitu, vienādu secību un vienādiem vai saderīgiem lauku tipiem. Izpildot apvienošanas vaicājumu, katras atbilstošās lauku kopas dati tiek apvienoti vienā izvades laukā, lai vaicājuma izvadē būtu tas pats katrā priekšrakstā SELECT iekļautais lauku skaits.

    Piezīme : Apvienošanas vaicājuma izmantošanas gadījumā datu tipi Number and Text ir saderīgi.

  • Apvienošanas vaicājumi ir SQL specifiski un tādēļ tie jāraksta tieši valodā SQL. SQL specifisku vaicājumu, ieskaitot apvienošanas vaicājumus, rakstīšanai izmanto SQL skatu.

Apvienošanas vaicājuma SQL sintakse

Apvienošanas vaicājumā katram atlases vaicājumam (kas tiek saukti arī par SELECT priekšrakstiem) ir šādas klauzulas.

Klauzula

Ir iekļauts šādu vienumu saraksts:

SELECT

lauki, kuros ir dati, kurus vēlaties izgūt;

FROM

tabulas, kurās atrodas šie lauki;

Neobligātā klauzula WHERE

šo lauku kritēriji.

SELECT priekšraksti tiek kombinēti, izmantojot atslēgvārdu UNION.

Apvienošanas vaicājuma SQL pamatsintakse ir šāda:

SELECT field_1[, field_2,…]
FROM table_1[, table_2,…]
UNION [ALL]
SELECT field_a[, field_b,...]
FROM table_a[, table_b,…];

Piemēram, ja jums ir tabula Product (Produkti) un tabula Services (Pakalpojumi), un abās tabulās ir lauki, kuros iekļauts produkta vai pakalpojuma nosaukums, cena, ražotāja vai pakalpojuma sniedzēja garantijas pieejamība un norāde, vai produktu vai pakalpojumu piedāvājat ekskluzīvi. Lai gan tabulā Product (Produkti) tiek glabāta informācija par ražotāja garantiju un tabulā Services (Pakalpojumi) tiek glabāta informācija par pakalpojumu sniedzēja garantiju, pamatinformācija ir vienāda (informācija par to, vai konkrētajam produktam vai pakalpojumam ir pievienots solījums par kvalitāti). Apvienošanas vaicājumu, piemēram, tālāk minēto, var izmantot, lai apvienotu četrus abu tabulu laukus:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services;

Apskatīsim iepriekš minēto sintaksi pa rindai.

Sintakse

Skaidrojums

Papildinformācija

SELECT name, price, warranty_available, exclusive_offer.

Pirmā klauzula SELECT

Vārdam SELECT seko identifikatoru saraksts, kas norāda apzīmē laukus, no kuriem vēlaties izgūt datus.

Klauzulā SELECT jābūt norādītam vismaz vienam laukam.

Šajā klauzulā SELECT ir iekļauti šādi lauku identifikatori: name (nosaukums), price (cena), warranty_available (garantija_pieejama) un exclusive_offer (ekskluzīvs_piedāvājums).

FROM Products.

Pirmā klauzula FROM

Klauzula FROM seko klauzulai SELECT, un tās kopā veido pamatpriekšrakstu SELECT.

Vārdam FROM seko identifikatoru saraksts, kuri apzīmē tabulas, kurās atrodas klauzulā SELECT uzskaitītie lauki.

Klauzulā FROM jābūt norādītai vismaz vienai tabulai.

Šajā klauzulā FROM ir iekļauts šāds tabulas identifikators: Products (Produkti).

UNION ALL.

Atslēgvārds UNION un neobligātais atslēgvārds ALL.

Pirms vārda UNION iekļautā priekšraksta SELECT rezultāti jāapvieno ar tā priekšraksta SELECT rezultātiem, kas seko vārdam UNION.

Ja tiek izmantots atslēgvārds ALL, rindu dublikāti netiek izņemti no apvienošanas vaicājuma rezultātiem.

Izmantojot atslēgvārdu ALL, var palielināt vaicājuma izpildes ātrumu, jo programmai Access nav jāpārbauda rindu dublikāti.

Izmantojiet atslēgvārdu ALL, ja piepildās jebkuri no šiem nosacījumiem.

  • Esat pārliecināts, ka atlases vaicājumi neizraisīs rindu dublikātu izveidi.

  • Jums nav svarīgi, vai rezultātos ir rindu dublikāti.

  • Vēlaties skatīt rindu dublikātus.

SELECT name, price, guarantee_available, exclusive_offer.

Otrā klauzula SELECT

Dažas kārtulas

  • Otrās klauzulas SELECT lauku skaitam ir jābūt vienādam ar pirmās klauzulas SELECT lauku skaitu.

  • Lauku, kuros atrodas vispārēji dati, secībai klauzulā ir jābūt vienādai.

  • Lauku, kuros atrodas vispārēji dati, datu tipiem ir jābūt vienādiem vai savietojamiem.

Piezīme : Apvienošanas vaicājuma izvadē tiek izmantoti pirmās klauzulas SELECT lauku nosaukumi. Tādēļ mūsu piemērā lauka “warranty_available” un lauka “guarantee_available” dati vaicājuma izvadē tiek saukti kā “warranty_available”.

FROM Services.

Otrā klauzula FROM

Apvienošanas vaicājuma klauzulā FROM nav nekādu ar tabulām saistītu ierobežojumu. Var izveidot apvienošanas vaicājumu, kur katrā klauzulā FROM tiek izmantotas tās pašas tabulas. Klauzulās FROM var būt iekļauts atšķirīgs tabulu skaits. Mūsu piemērā katrā klauzulā FROM ir iekļauta tikai viena tabula.

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.

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.

×