Kartais galite norėti palyginti dvi lenteles „Access“ ir identifikuoti vienos iš lentelių įrašus, kurie neturi atitinkančių įrašų kitoje lentelėje. Lengviausias būdas rasti šiuos įrašus – naudoti nesutampančių elementų radimo užklausų vediklį. Kai vediklis sukuria užklausą, galite modifikuoti užklausos dizainą, kad įtrauktumėte arba pašalintumėte laukus arba įtrauktumėte dviejų lentelių jungtis (kad būtų nurodomi laukai, kurių reikšmės turi atitikti). Taip pat galite nenaudodami vediklio sukurti savo užklausą nesutampantiems įrašams rasti.
Šiame straipsnyje sužinosite, kaip paleisti ir naudoti nesutampančių elementų radimo užklausų vediklį, kaip modifikuoti vediklio rezultatus ir kaip sukurti savo užklausą nesutampantiems įrašams rasti.
Šiame straipsnyje:
Kada turėčiau ieškoti nesutampančių įrašų?
Toliau pateikiami dvi įprastos aplinkybės, kai gali būti naudinga palyginti dvi lenteles ir rasti nesutampančius įrašus. Atsižvelgiant į jūsų aplinkybes, nesutampančius įrašus gali būti naudinga rasti prieš atliekant kitus veiksmus. Šiame straipsnyje aprašoma tik kaip rasti nesutampančius įrašus.
-
Vieną lentelę naudojate duomenims apie daiktą (pvz., produktą) saugoti, o kitą lentelę – duomenims apie veiksmus (pvz., užsakymus) su tuo daiktu saugoti.
Pavyzdžiui, „Northwind“ duomenų bazės šablone duomenys apie produktus saugomi lentelėje Produktai, o duomenys apie produktus, įtrauktus į kiekvieną užsakymą, saugomi lentelėje Užsakymų informacija. Kadangi lentelėje Produktai (dėl numatytosios struktūros) nėra duomenų apie užsakymus, neįmanoma pažiūrėjus tik į lentelę Produktai nustatyti, kurie produktai niekada nebuvo parduoti. Šios informacijos neįmanoma nustatyti ir žiūrint tik į lentelę Užsakymų informacija, nes joje yra tiktai duomenys apie parduotus produktus. Turite palyginti dvi lenteles, kad nustatytumėte, kurie produktai niekada nebuvo parduoti.
Jei norite peržiūrėti daiktų iš pirmos lentelės, kurie neturi atitinkamų veiksmų antroje lentelėje, sąrašą, galite naudoti nesutampančių elementų radimo užklausą.
-
Turite dvi lenteles, kuriose yra persiklojančios, perteklinės ar nesuderinamos informacijos, ir norite jas sujungti į vieną lentelę.
Tarkime turite vieną lentelę, pavadintą Klientai ir kitą, pavadintą Užsakovai. Šios lentelės beveik identiškos, bet vienoje arba abiejose lentelėse yra įrašų, kurių nėra kitoje. Norėdami sujungti lenteles pirma turite nustatyti, kurie įrašai unikalūs vienoje lentelėje ir kitoje.
Jei jūsų aplinkybės panašios, jums gali padėti šiame straipsnyje aprašyti metodai, bet tikriausiai turėsite atlikti ir tolesnius veiksmus. Galite vykdyti nesutampančių elementų radimo užklausų vediklį, kad nustatytumėte nesutampančius įrašus, bet jei norite gauti jungtinį įrašų rinkinį, naudokite rezultatus „union“ užklausai sukurti. Jei mokate rašyti struktūrinių užklausų kalbos (SQL) sakinius, galite nenaudoti nesutampančių elementų radimo užklausų vediklio ir „union“ užklausą parašyti ranka.
Ieškodami besidubliuojančių duomenų dviejose ar keliose lentelėse galite dažnai susidurti su persiklojančios, perteklinės ar nesuderinamos informacijos problema.
Jei reikia daugiau informacijos apie „union“ užklausas arba kaip rasti, slėpti ar pašalinti besidubliuojančius duomenis, spustelėkite nuorodas skyriuje Taip pat žiūrėkite.
Pastaba: Šio straipsnio pavyzdžiuose naudojama duomenų bazė, sukurta naudojant „Northwind“ duomenų bazės šabloną.
Kaip nustatyti „Northwind“
-
Skirtuke Failas spustelėkite Naujas.
-
Atsižvelgiant į jūsų „Access“ versiją, „Northwind“ galite ieškoti ieškos lauke arba kairiojoje srityje, dalyje Šablonų kategorijos, spustelėkite Vietos šablonai.
-
Dalyje Vietos šablonai, spustelėkite „Northwind 2007“ pavyzdys, tada spustelėkite Kurti.
-
Vykdydami puslapyje „Northwind“ prekiautojai (objekto skirtuke Paleisties ekranas) pateiktus nurodymus atidarykite duomenų bazę, o tada uždarykite prisijungimo dialogo langą.
Nesutampančių elementų radimo užklausų vediklio naudojimas dviem lentelėms palyginti
-
Skirtuko Kūrimas grupėje Užklausos spustelėkite Užklausos vediklis.
-
Dialogo lange Nauja užklausa dukart spustelėkite Nesutampančių elementų radimo užklausų vediklis.
-
Pirmame vediklio puslapyje pasirinkite lentelę, kurioje yra nesutampančių įrašų, ir spustelėkite Pirmyn. Pavyzdžiui, jei norite pamatyti niekada neparduotų „Northwind“ produktų sąrašą, pasirinkite lentelę Produktai.
-
Antrame puslapyje pasirinkite susijusią lentelę ir spustelėkite Pirmyn. Šiame pavyzdyje pasirinkite lentelę Užsakymų informacija.
-
Trečiame puslapyje pasirinkite laukus, kurie sieja šias lenteles, spustelėkite < = >, tada spustelėkite Pirmyn. Kiekvienoje lentelėje galite pasirinkti tik vieną lauką. Pagal pavyzdį pasirinkite ID lentelėje Produktai ir Produkto ID lentelėje Užsakymų informacija. Patikrinkite, ar tai tikrai sutampantys laukai peržiūrėdami tekstą lauke Sutampantys laukai.
Atminkite, kad ID ir Produkto ID laukai jau gali būti pasirinkti dėl šablone įtaisytų esamų ryšių.
-
Ketvirtame puslapyje dukart spustelėkite laukus, kuriuos norite matyti iš pirmos lentelės, tada spustelėkite Pirmyn. Pagal pavyzdį pasirinkite ID ir Produkto pavadinimo laukus.
-
Penktame puslapyje galite pasirinkti peržiūrėti rezultatus arba modifikuoti savo užklausos dizainą. Šiame pavyzdyje spustelėkite Peržiūrėti rezultatus. Priimkite siūlomą užklausos pavadinimą ir spustelėkite Baigti.
Gali būti, kad norėsite modifikuoti savo užklausos dizainą, kad įtrauktumėte kitų kriterijų, pakeistumėte rūšiavimo tvarką arba, kad įtrauktumėte ar pašalintumėte laukus. Jei reikia informacijos apie nesutampančių elementų radimo užklausos modifikavimą arba bendresnės informacijos apie užklausų kūrimą ir modifikavimą, žr. nuorodas skyriuje Taip pat žiūrėkite.
Nesutampančių elementų radimo užklausos kūrimas ir modifikavimas, kad būtų lyginama daugiau nei pagal vieną lauką
-
Skirtuko Kūrimas grupėje Užklausos spustelėkite Užklausos vediklis.
-
Dialogo lange Nauja užklausa dukart spustelėkite Nesutampančių elementų radimo užklausų vediklis.
-
Pirmame vediklio puslapyje pasirinkite lentelę, kurioje yra nesutampančių įrašų, ir spustelėkite Pirmyn. Pavyzdžiui, jei norite pamatyti niekada neparduotų „Northwind“ produktų sąrašą, pasirinkite lentelę Produktai.
-
Antrame puslapyje pasirinkite susijusią lentelę ir spustelėkite Pirmyn. Šiame pavyzdyje pasirinkite lentelę Užsakymų informacija.
-
Trečiame puslapyje pasirinkite laukus, kurie sieja šias lenteles, spustelėkite < = >, tada spustelėkite Pirmyn. Kiekvienoje lentelėje galite pasirinkti tik vieną lauką. Pagal pavyzdį pasirinkite ID lentelėje Produktai ir Produkto ID lentelėje Užsakymų informacija. Patikrinkite, ar tai tikrai sutampantys laukai peržiūrėdami tekstą lauke Sutampantys laukai. Baigę naudoti vediklį galite sujungti likusius laukus.
Atminkite, kad ID ir Produkto ID laukai jau gali būti pasirinkti dėl šablone įtaisytų esamų ryšių.
-
Ketvirtame puslapyje dukart spustelėkite laukus, kuriuos norite matyti iš pirmos lentelės, tada spustelėkite Pirmyn. Pagal pavyzdį pasirinkite ID ir Produkto pavadinimo laukus.
-
Penktame puslapyje spustelėkite Modifikuoti dizainą, tada spustelėkite Baigti.
Užklausa atidaroma dizaino rodinyje.
-
Atkreipkite dėmesį, kad užklausos dizaino tinklelyje dvi lentelės yra sujungtos pagal laukus (šiame pavyzdyje – ID ir Produkto ID), kuriuos nurodėte trečiajame vediklio puslapyje. Sukurkite jungtį kiekvienai likusiai susijusių laukų porai nuvilkdami juos iš pirmos lentelės (lentelės, kurioje yra nesutampančių įrašų) į antrąją. Šiame pavyzdyje nuvilkite lauką Sąrašo kaina iš lentelės Produktai į lauką Vieneto kaina lentelėje Užsakymų informacija.
-
Dukart spustelėkite jungtį (laukus jungiančią liniją), kad būtų rodomas dialogo langas Sujungimo ypatybės. Kiekvienai jungčiai pasirinkite parinktį, kuri apima visus įrašus iš lentelės Produktai, ir spustelėkite Gerai.
Atkreipkite dėmesį, kad užklausos dizaino tinklelyje kiekviena jungtis viename gale turi rodyklę.
1. Kai sukuriate jungtį tarp laukų Sąrašo kaina ir Vieneto kaina, ji riboja išvestį iš abiejų lentelių. Į užklausos rezultatus bus įtraukti tik įrašai su sutampančiais laukų duomenimis abiejose lentelėse.
2. Kai redaguojate jungties ypatybes, jungtis riboja tiktai lentelę, į kurią nukreipta rodyklė. Visi įrašai iš lentelės, nuo kurios nukreipta rodyklė, įtraukiami į užklausos rezultatus.
Pastaba: Užtikrinkite, kad visos jungčių rodyklės būtų nukreiptos ta pačia kryptimi.
-
Lentelės su susijusiais įrašais atveju (šiame pavyzdyje tai lentelė Užsakymų informacija) dukart spustelėkite kiekvieną lauką, kuris sujungtas su pirma lentele, išskyrus lauką, kurį pasirinkote trečiame vediklio puslapyje (šiuo atveju tai laukas Produkto ID). Kiekvieno iš šių laukų atveju išvalykite žymės langelį eilutėje Rodyti ir įveskite Is Null eilutėje Kriterijai.
-
Pasirinktinai galite įtraukti kriterijų į kitus užklausos laukus arba sukurti apskaičiuotuosius laukus, pagrįstus reikšmėmis iš pirmos lentelės.
-
Skirtuko Užklausos dizainas grupėje Rezultatai spustelėkite Vykdyti.
Užklausa grąžins produktų pavadinimus, kurių nėra jokiuose esamuose užsakymuose.
Savo užklausos nesutampantiems įrašams rasti kūrimas
-
Skirtuko Kūrimas grupėje Užklausos spustelėkite Užklausos dizainas.
-
Dukart spustelėkite lentelę, kurioje yra nesutampančių įrašų, tada dukart spustelėkite lentelę, kurioje yra susijusių įrašų.
-
Užklausos dizaino tinklelyje abi lentelės turi būti su linijomis, vadinamomis jungtimis, jungiančiomis jas pagal jų susijusius laukus. Jei jungčių nėra, jas sukurkite nuvilkdami kiekvieną susijusį lauką iš pirmos lentelės (lentelės, kurioje yra nesutampančių įrašų) į antrą lentelę (lentelę, kurioje yra susijusių įrašų).
-
Dukart spustelėkite jungtį, kad atidarytumėte dialogo langą Sujungimo ypatybės. Kiekvienai jungčiai pasirinkite 2 parinktį ir spustelėkite Gerai.
Užklausos dizaino tinklelyje jungtys pasikeičia: viename gale atsiranda rodyklė.
Pastaba: Užtikrinkite, kad visos jungtys būtų nukreiptos ta pačia kryptimi. Užklausa nebus vykdoma, jei jungtys bus nukreiptos skirtingomis kryptimis, ir gali būti nevykdoma, jei kuri nors jungtis neturės rodyklės. Jungtys turi būti nukreiptos nuo lentelės, kurioje yra nesutampančių įrašų.
-
Lentelėje, kurioje yra nesutampančių įrašų, dukart spustelėkite laukus, kuriuos turėtų pateikti užklausa.
Jei norite, galite įvesti bet kurio iš šių laukų kriterijus arba sukurti apskaičiuotuosius laukus.
-
Lentelėje su susijusiais įrašais dukart spustelėkite kiekvieną lauką, kuris sujungtas su pirmąja lentele. Kiekvieno iš šių laukų atveju išvalykite lauką eilutėje Rodyti ir įveskite Is Null eilutėje Kriterijai.
-
Skirtuko Užklausos dizainas grupėje Rezultatai spustelėkite Vykdyti.
Taip pat žr.
Paprastos išrinkimo užklausos kūrimas
Pasikartojančių įrašų radimas vykdant užklausą
„Union“ užklausos naudojimas norint sujungti kelių užklausų rezultatus į vieną