„Union“ užklausos naudojimas norint sujungti kelių užklausų rezultatus į vieną

„Union“ užklausos naudojimas norint sujungti kelių užklausų rezultatus į vieną

Svarbu :  Šis straipsnis išverstas naudojant mašininį vertimą, žr. atsakomybės atsisakymą. Su šio straipsnio versija anglų kalba galite susipažinti čia .

Tarkime, kad jūsų "Access" duomenų bazės turi du nesusijusius lenteles – tą, kuris saugo kliento duomenis ir kitą saugo duomenis apie tiekėjų – ir abiejose lentelėse yra laukas kontaktinę informaciją. Norite peržiūrėti kontaktinę informaciją iš abiejų lentelių viename rodinyje. Norėdami atlikti šią užduotį, pirmiausia sukurkite atrankos užklausą kiekvienos lentelės gauti kontaktinę informaciją, o tada sujungti šiuos rezultatus iš "union" užklausų kūrimą.

Pastaba : Šio straipsnio turinys skirtas naudoti su prieigos kompiuterio duomenų bazės. Negalite kurti ar naudoti "union" užklausos prieigos žiniatinklio duomenų bazėse arba prieigos žiniatinklio taikomosios programos.

Reikia sukurti pagrindinės išrinkimo užklausų atnaujinimo? Peržiūrėkite sukurti paprastą išrinkimo užklausą.

Pirmiausia keletas dalykų, kuriuos reikėtų žinoti apie „union“ užklausų kūrimą:

  • Išrinkimo užklausos, kurias sujungiate į „union“ užklausą, turi turėti tiek pat išvesties laukų, išdėstytų ta pačia tvarka ir su tokių pačių arba suderinamų tipų duomenimis. Kai vykdote „union“ užklausą, duomenys iš kiekvieno atitinkamų laukų rinkinio sujungiami į vieną išvesties lauką, kad užklausos išvestyje būtų tiek pat laukų, kiek ir kiekvienoje SELECT užklausoje.

  • „Union“ užklausa yra SQL užklausa, tad ją reikia rašyti tiesiogiai naudojant SQL. Reikėtų įsijungti SQL rodinį, kad galėtumėte užrašyti būdingą SQL užklausą, taip pat ir „union“ užklausas.

1-as veiksmas: išrinkimo užklausų kūrimas

Pastaba : Nors į užklausą galite įtraukti keletą lentelių arba užklausų, atliekant šią procedūrą numanoma, kad kiekvienoje išrinkimo užklausoje yra duomenys tik iš vienos lentelės.

  1. Skirtuko Kūrimas grupėje Užklausos spustelėkite Užklausos dizainas.

  2. Dialogo lange Lentelės rodymas dukart spustelėkite lentelę, kurioje yra norimi įtraukti laukai. Lentelė įtraukiama į užklausos dizaino langą.

  3. Uždarykite dialogo langą Lentelės rodymas.

  4. Užklausos dizaino lange dukart spustelėkite norimus įtraukti laukus.
    Rinkdamiesi laukus įsitikinkite, kad įtraukiate tiek pat laukų ir jie išdėstyti toki pačia tvarka, kuria juos įtraukiate į kitas išrinkimo užklausas. Atkreipkite dėmesį į laukų duomenų tipus ir įsitikinkite, kad jų duomenų tipai suderinami su laukų, esančių toje pačioje vietoje kitose užklausose, kurias sujungiate, duomenų tipais. Pavyzdžiui, jei pirmojoje išrinkimo užklausoje yra penki laukai, iš kurių pirmajame yra datos / laiko duomenys, įsitikinkite, kad visos kitos jungiamos išrinkimo užklausos taip pat turi penkis laukus, iš kurių pirmajame yra datos / laikos duomenys ir t. t.

  5. Jei reikia, kriterijus į laukus galite įtraukti įvesdami atitinkamas išraiškų laukų tinklelio eilutėje kriterijai .

  6. Užbaigę laukų ir laukų kriterijų įtraukimą paleiskite išrinkimo užklausos ir peržiūrėkite jos išvestį. Skirtuko dizainas grupėje rezultatai spustelėkite vykdyti.

  7. Perjunkite užklausos rodinį į dizaino rodinį.

  8. Įrašykite išrinkimo užklausą ir palikite ją atidarytą.

  9. Šią procedūrą pakartokite su kiekviena išrinkimo užklausa, kurią norite sujungti.

Daugiau informacijos apie kriterijų naudojimą užklausoje ieškokite kriterijų taikymas užklausai.

Išrinkimo užklausų sujungimas

Šiame žingsnyje, galite sukurti "union" užklausą, naudodami SQL sakinių. (Daugiau informacijos ieškokite skyriuje SQL sintaksė po.)

  1. Skirtuko Kūrimas grupėje Užklausos spustelėkite Užklausos dizainas.

  2. Uždarykite dialogo langą Lentelės rodymas.

  3. Skirtuko Dizainas grupėje Užklausa spustelėkite Sujungimas.

„Access“ paslepia užklausų dizaino langą ir rodo SQL rodinio objektų skirtuką. Šiuo metu SQL rodinio objekto skirtukas yra tuščias.

  1. Spustelėkite pirmos išrinkimo užklausos, kurią norite sujungti į „union“ užklausą, skirtuką.

  2. Skirtuke Pagrindinis spustelėkite rodinys > SQL rodinys.

  3. Nukopijuokite atrankos užklausos SQL sakinį. Spustelėkite 1 šios procedūros veiksme pradėtos kurti sąjungos užklausos skirtuką.

  4. Įklijuokite išrinkimo užklausos SQL sakinį į „union“ užklausos SQL rodinio objektų skirtuko lapą.

  5. Panaikinkite kabliataškį (;) atrankos užklausos SQL sakinio gale.

  6. Paspauskite Enter, kad perkeltumėte žymiklį žemyn per vieną eilutę, ir tada naujoje eilutėje įveskite UNION .

  7. Spustelėkite kitos išrinkimo užklausos, kurią norite sujungti į „union“ užklausą, skirtuką.

  8. Kartokite 5–10 šios procedūros veiksmus, kol nukopijuosite ir įklijuosite visus atrankos užklausų SQL sakinius į sąjungos užklausos SQL rodinio langą. Po paskutinės atrankos užklausos nepanaikinkite kabliataškio ir po SQL sakinio nieko neįveskite.

  9. Skirtuko Dizainas grupėje Rezultatai spustelėkite Vykdyti.

Sąjungos užklausos rezultatai rodomi duomenų lapo rodinys.

Puslapio viršus

Patarimai, kaip naudoti „union“ užklausas

  • Kad atskirtumėte, kurios eilutės priklauso kuriai lentelei, į kiekvieną išrinkimo sakinį įtraukite teksto eilutę kaip lauką.

    Pvz., jei vienas išrinkimo sakinys laukus gauna iš lentelės, pavadintos Produktai, o kitas išrinkimo sakinys – iš lentelės, pavadintos Paslaugos, pirmojo sakinio gale kaip lauką įtraukite eilutę „Produktas“, o antrojo sakinio gale – eilutę „Paslauga“. Naudodami AS raktažodį eilutėms taip pat galite priskirti lauko pseudonimą (pvz., „tipas“), kaip rodoma šiame pavyzdyje:

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

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

    Užklausos išvestyje būtų laukas, pavadintas „tipas“, rodantis, ar eilutė yra iš lentelės Produktai, ar iš lentelės Paslaugos.

  • Kiekvienas raktažodis UNION sujungia sakinius SELECT, esančius iškart prieš jį ir iškart po jo. Jei savo užklausoje su kai kuriais raktažodžiais UNION naudojate raktažodį ALL, o su kitais nenaudojate, rezultatuose bus besidubliuojančios eilutės iš sakinių SELECT porų, sujungtų naudojant UNION ALL, bet nebus besidubliuojančių eilučių iš sakinių SELECT, sujungtų naudojant UNION be raktažodžio ALL.

  • Skaičių, duomenų tipai ir laukų tvarka išrinkimo užklausose turi sutapti. Kad jie sutaptų, galite naudoti tokias išraiškas kaip skaičiavimai arba antrinės užklausos.

    Pvz., galite suderinti dviejų simbolių metų lauką su keturių simbolių metų lauku, naudodami funkciją Right paskutiniesiems dviem keturių simbolių metų skaitmenims išskirti.

„Union“ užklausos rezultatų naudojimas naujai lentelei kurti

Pirmiausia "union" užklausą panaudosite kaip įvestį naujai išrinkimo užklausai, ir tada išrinkimo užklausą panaudosite kaip lentelės sudarymo užklausą, kaip parodyta toliau nurodytus veiksmus:

  1. Sukurkite ir įrašykite „union“ užklausą.

  2. Skirtuko Kūrimas grupėje Užklausos spustelėkite Užklausos dizainas.

  3. Dialogo lange Lentelės rodymas spustelėkite skirtuką Užklausos.

  4. Dukart spustelėkite „union“ užklausą, tada uždarykite dialogo langą Lentelės rodymas.

    Pastaba : Jei pranešimų juostoje matote saugos įspėjimą, veiksmų užklausos gali būti išjungtos. Norėdami įjungti veiksmų užklausas, tiesiog pranešimų juostoje spustelėkite Įgalinti turinį.

  5. Užklausų dizaino tinklelio „union“ užklausos objektų skirtuko lape dukart spustelėję žvaigždutę (*) naudokite visus „union“ užklausos laukus naujai lentelei sukurti.

  6. Skirtuko Dizainas grupėje Užklausos tipas spustelėkite Lentelės kūrimas.

  7. Dialogo lange Lentelės kūrimas įveskite naujos lentelės pavadinimą.

  8. Pasirinktinai galite nurodyti kitą duomenų bazę, kurioje reikia kurti lentelę.

  9. Spustelėkite Gerai.

  10. Skirtuko Dizainas grupėje Rezultatai spustelėkite Vykdyti.

„Union“ užklausos naudojimas visam išoriniam sujungimui vykdyti.

„Union“ užklausą galite naudoti visam išorinis sujungimas vykdyti. Visas išorinis sujungimas neriboja eilučių, grąžinamų iš abiejų sujungtų lentelių, kiekio, o sujungia eilutes pagal reikšmes sujungimo lauke.

  1. Sukurkite užklausą, kurios kairysis išorinis sujungimas yra lauke, kurį norite naudoti visam išoriniam sujungimui.

  2. Skirtuko Pagrindinis grupėje Rodiniai spustelėkite Rodinys, tada spustelėkite SQL rodinys.

  3. Paspaudę CTRL + C nukopijuokite SQL kodą.

  4. Panaikinkite kabliataškį sąlygos FROM gale, tada paspauskite klavišą „Enter“.

  5. Įveskite UNIONir paspauskite klavišą Enter.

    Pastaba : Kai „union“ užklausą naudojate visam išoriniam sujungimui įvykdyti, nenaudokite raktažodžio ALL.

  6. Paspaudę CTRL + V įklijuokite 3 veiksme nukopijuotą SQL kodą.

  7. Įklijuotame kode pakeiskite LEFT JOIN į RIGHT JOIN.

  8. Panaikinkite kabliataškį antrosios sąlygos FROM gale, tada paspauskite klavišą „Enter“.

  9. Įtraukite sąlygą WHERE, nurodančią, kad sujungimo lauko reikšmė pirmojoje lentelėje, pateiktoje su sąlyga FROM (kairiojoje lentelėje), yra NULL.

    Pvz., jei sąlyga FROM yra:

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

    Įtrauktumėte tokią sąlygą WHERE:

    WHERE Products.ID IS NULL

  10. Sąlygos WHERE gale įveskite kabliataškį (;) ir taip nurodykite „union“ užklausos pabaigą.

  11. Skirtuko Dizainas grupėje Rezultatai spustelėkite Vykdyti.
    Pasirodo jūsų „union“ užklausos rezultatų duomenų lapo rodinys.

Daugiau informacijos ieškokite prisijungimas prie lenteles ir užklausas.

Puslapio viršus

„Union“ užklausos reikalavimai ir SQL sintaksė

Reikalavimai „union“ užklausai sukurti

  • Išrinkimo užklausos, kurias sujungiate į „union“ užklausą, turi turėti tiek pat išvesties laukų, išdėstytų ta pačia tvarka ir su tokių pačių arba suderinamų tipų duomenimis. Kai vykdote „union“ užklausą, duomenys iš kiekvieno atitinkamų laukų rinkinio sujungiami į vieną išvesties lauką, kad užklausos išvestyje būtų tiek pat laukų, kiek ir kiekviename SELECT sakinyje.

    Pastaba : „Union“ užklausose skaičių ir teksto duomenų tipai yra suderinami.

  • „Union“ užklausa yra SQL užklausa, tad ją reikia rašyti tiesiogiai naudojant SQL. Reikėtų įsijungti SQL rodinį, kad galėtumėte užrašyti būdingą SQL užklausą, taip pat ir „union“ užklausas.

„Union“ užklausos SQL sintaksė

„Union“ užklausoje kiekviena užklausa (taip pat vadinama SELECT sakiniu) turi šias sąlygas:

Sąlyga

Yra sąrašas...

SELECT

laukų, kuriuose yra jūsų norimų išrinkti duomenų

FROM

lentelių, kuriose yra šių laukų

neprivalomas WHERE

šių laukų kriterijai

SELECT sakiniai sujungiami naudojant raktažodį UNION.

Pagrindinė „union“ užklausos SQL sintaksė yra tokia:

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

Pvz., jūsų duomenų bazėje yra lentelė, pavadinta Produktai, ir kita lentelė, pavadinta Paslaugos, o abiejose lentelėse yra laukų, kuriuose nurodytas produkto ar paslaugos pavadinimas, kaina, garantija arba garantinis laikotarpis ir tai, ar siūlote produktą arba paslaugą išskirtinėmis teisėmis. Nors lentelėje Produktai saugoma garantijos informacija, o lentelėje Paslaugos saugoma garantinio laikotarpio informacija, pagrindinė informacija yra tokia pati (ar užtikrinama konkretaus produkto ar paslaugos kokybė). Keturiems laukams iš dviejų lentelių sujungti galite naudoti „union“ užklausą, tokią, kaip pateikiama toliau.

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

Išnagrinėkime ankstesnį sintaksės pavyzdį po vieną eilutę:

Sintaksė

Paaiškinimas

Papildoma informacija

SELECT pavadinimas, kaina, prieinama_garantija, išskirtinis_pasiūlymas

Pirmoji SELECT sąlyga

Po SELECT pateikiamas identifikatorių, nurodančių laukų, iš kurių norite atrinkti duomenis, sąrašas.

Į sąlygą SELECT privalo būti įtrauktas bent vienas laukas.

Šiai sąlygai SELECT priskirti identifikatoriai pavadinimas, kaina, prieinama_garantija ir išskirtinis_pasiūlymas.

FROM produktai

Pirmoji FROM sąlyga

Sąlyga FROM eina po sąlygos SELECT ir jos abi sudaro pagrindinį SELECT sakinį.

Po sąlygos FROM yra sąrašas identifikatorių, nurodančių, kuriose lentelėse yra laukai, įtraukti į sąlygą SELECT.

Į sąlygą FROM privalo būti įtraukta bent viena lentelė.

Į šią sąlygą FROM įtrauktas lentelės identifikatorius produktai.

UNION ALL

Raktažodis UNION ir neprivalomas raktažodis ALL

Rezultatai, einantys prieš UNION, sujungiami su sakinio SELECT, einančio po UNION, rezultatais.

Kai naudojate raktažodį ALL, besidubliuojančios eilutės nepašalinamos iš „union“ užklausos rezultatų.

Naudojantis raktažodžiu ALL užklausa gali veikti sparčiau, nes programai „Access“ nereikia tikrinti, ar nėra besidubliuojančių eilučių.

Raktažodį ALL naudokite, jei šios sąlygos yra teisingos:

  • Esate tikri, kad išrinkimo užklausos nesukurs jokių besidubliuojančių eilučių.

  • Nesvarbu, ar rezultatuose yra besidubliuojančių eilučių.

  • Norite matyti besidubliuojančias eilutes.

SELECT pavadinimas, kaina, prieinama_garantija, išskirtinis_pasiūlymas

Antroji SELECT sąlyga

Kelios taisyklės:

  • Antrojoje SELECT sąlygoje turi būti tiek pat laukų, kiek ir pirmojoje SELECT sąlygoje.

  • Laukai, bendrai naudojantys tuos pačius duomenis, sąlygoje turi būti įrašyti ta pačia tvarka.

  • Laukų, bendrai naudojančių tuos pačius duomenis, duomenų tipai turi būti suderinami arba tapatūs.

Pastaba : „Union“ užklausos išvesties laukų pavadinimai yra iš pirmosios SELECT sąlygos. Dėl to pavyzdžio duomenys iš lauko „prieinama_garantija“ ir iš lauko „garantija_prieinama“ užklausos išvestyje vadinami „prieinama_garantija“.

FROM paslaugos

Antroji FROM sąlyga

Su „union“ užklausos sąlygomis FROM pateikiamoms lentelėms netaikomi jokie apribojimai. Galite sukurti „union“ užklausą, su kurios kiekviena sąlyga FROM pateikiamos tos pačios lentelės. Su sąlygomis FROM gali būti pateikiamas skirtingas lentelių kiekis. Mūsų pavyzdyje su kiekviena sąlyga FROM pateikiama tik viena lentelė.

Puslapio viršus

Pastaba : Mašininio vertimo atsakomybės atsisakymas: Šis straipsnis išverstas naudojant kompiuterinę sistemą be žmogaus įsikišimo. „Microsoft“ pateikia šiuos mašininius vertimus norėdama padėti anglų kalbos nesuprantantiems vartotojams perskaityti turinį apie „Microsoft“ produktus, paslaugas ir technologijas. Šis straipsnis išverstas mašininio vertimo būdu, todėl jame gali būti žodyno, sintaksės ar gramatikos klaidų.

Tobulinkite savo įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijunkite prie „Office Insider“ dalyvių

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×