Asocierea tabelelor și interogărilor

Asocierea tabelelor și interogărilor

Important : Acest articol este tradus automat, consultați exonerarea de răspundere. Versiunea în limba engleză a acestui articol se poate găsi aici pentru referință.

Când includeți mai multe surse de date într-o interogare Access, utilizați asocieri pentru a limita înregistrările pe care doriți să vedeți, bazat pe cum sursele de date sunt legate între ele. Utilizați, de asemenea, asocierile la combină înregistrările din ambele surse de date, astfel încât fiecare pereche de înregistrări din surse devine o înregistrare din rezultatele interogării.

Acest articol prezintă diversele tipuri de asocieri și vă arată cum să le utilizați într-o interogare. În mod implicit, o asociere se creează automat dacă există deja o relație între două date surse care le utilizați într-o interogare. O asociere se creează, de asemenea, dacă există câmpuri care clar corespund între ele. Puteți să ștergeți o asociere create automat. Acest articol oferă informații de bază despre relațiile de tabel, inclusiv cum să creați unul.

Notă : Vă puteți asocia interogări în același mod asocia tabele și, de asemenea, se pot asocia ambele.

În acest articol

Prezentare generală

Tipuri de asocieri

Afișează rândurile dacă există o valoare comună în ambele tabele asociate

Afișează toate rândurile dintr-un tabel și rândurile corespondente din alt tabel

Afișează toate rândurile din ambele tabele și Înscrieți-le în cazul în care există o valoare comună

Asocieri încrucișate

Asocierea la tabele pe baza unei inegalități de valori de câmp

Ștergerea unei asocieri

Prezentare generală

O bază de date este o colecție de tabele de date care poartă logică relații între ele. Utilizați relații pentru a vă conecta tabele după câmpurile care au în comun. Un tabel poate fi parte dintr-un alt număr de relații, dar fiecare relație are întotdeauna exact două tabele. Într-o interogare, o relație este reprezentat de o asociere.

Atunci când adăugați tabele într-o interogare, Access creează asocieri care se bazează pe relații care au fost definite între tabele. Puteți să creați manual asocieri în interogări, chiar dacă nu reprezintă relații care au fost deja definite. Dacă utilizați alte interogări (în loc de sau în plus față de tabele) ca surse de date pentru o interogare, puteți crea asocieri între interogările sursă și între aceste interogări și toate tabelele pe care o utilizați ca surse de date.

Asocierile se comportă în mod similar la criterii de interogare în care le stabiliți reguli care trebuie să corespundă cu datele pentru a fi incluse în operațiuni de interogare. Spre deosebire de criterii, asocierile, de asemenea, specificați că fiecare pereche de rândurile care satisfac condițiile asociere va fi combinate în setul de înregistrări pentru a forma un singur rând.

Există patru tipuri de asocieri de bază: asocierile interne, Asocierile externe, asocieri încrucișată și asocieri inegale. Acest articol explorează fiecare tip de asociere, puteți utiliza, motivul pentru care utilizează fiecare tip și cum să creați asocieri.

Asocierile sunt pentru interogări ceea ce sunt relațiile pentru tabele: o indicație a modului în care datele din două surse pot fi combinate, pe baza valorilor de date pe care le au în comun. Iată o ilustrație a unei asocieri în Vizualizarea proiect a interogării, având deschise proprietățile asocierii într-o casetă de dialog:

Caseta Proprietăți asociere

Această linie între tabelele reprezintă asociere. Faceți dublu clic pe o asociere pentru a deschide Proprietăți unire (cel descris) de caseta de dialog și revizuirea sau modificarea asociere.

Asocierile sunt uneori direcționale. Această zonă din caseta de dialog vă arată tabelele din asociere și câmpurile utilizate pentru a asocia tabelele.

Această zonă determină tipul de asociere: opțiunea 1 este o asociere internă, 2 este o asociere externă la stânga și 3 este o asociere externă la dreapta.

Se pot utiliza câmpuri din ambele tabele și se pot afișa din fiecare date care aparțin unei anumite activități. Într-o asociere internă, nu sunt incluse alte date. Într-o asociere externă, înregistrările necorelate dintr-un tabel sunt incluse, de asemenea, în rezultatele interogării.

Începutul paginii

Tipuri de asocieri

Există patru tipuri principale de asocieri: asocieri interne, asocieri externe, asocieri încrucișate și asocieri inegale. Asocierile încrucișate și asocierile inegale sunt tipuri de asocieri avansate și se utilizează rar, dar trebuie să știți și despre acestea pentru a înțelege complet cum funcționează asocierile.

Asocieri interne: doar date corelate din ambele tabele combinate

O asociere internă este una în care Access include doar date dintr-un tabel dacă există date corespondente în tabelul asociat și viceversa. De cele mai multe ori, veți utiliza asocieri interne. Când creați o asociere și nu specificați tipul acesteia, Access presupune că doriți o asociere internă. Asocierile interne sunt utile, deoarece vă permit să combinați date din două surse pe baza valorilor partajate - pentru ca dvs. să vedeți datele doar atunci când aveți o imagine completă.

Asocieri externe: toate datele asociate sunt combinate corect, plus toate înregistrările rămase dintr-un tabel

O asociere externă se aseamănă cu o asociere internă, dar adaugă rândurile rămase dintr-unul dintre tabele. Asocierile externe sunt direcționale: o asociere externă la stânga include toate înregistrările din tabelul de la stânga - primul tabel din asociere, iar o asociere externă la dreapta include toate înregistrările din tabelul de la dreapta - al doilea tabel din asociere.

Asocieri externe complete: toate datele, combinate unde este posibil

În unele sisteme, o asociere externă poate include toate rândurile din ambele tabele, cu rânduri combinate atunci când corespund. Aceasta se numește asociere externă completă și Access nu o acceptă în mod explicit. Totuși, puteți utiliza o asociere încrucișată și criterii pentru a obține același efect.

Asocieri încrucișate: toate datele, combinate în fiecare mod posibil

De cele mai multe ori, o asociere încrucișată reprezintă un efect secundar al adăugării a două tabele într-o interogare și al omiterii ulterioare a asocierii acestora. Access interpretează acest lucru în sensul că doriți să vedeți fiecare înregistrare dintr-un tabel combinată cu fiecare înregistrare din alt tabel - fiecare combinație posibilă de înregistrări. Deoarece nu pot fi combinate date, acest tip de asociere produce rareori rezultate utile. Dar există câteva cazuri în care poate fi necesară o asociere încrucișată.

Asocieri inegale: la fel ca o asociere obișnuită, dar utilizează o comparație diferită pentru a combina rândurile

Asocierile inegale utilizează alt operator decât semnul egal (=) pentru a compara valorile și a determina dacă și cum să se combine datele. Asocierile inegale nu sunt acceptate în mod explicit, dar puteți utiliza o asociere încrucișată și criterii pentru a obține același efect.

Afișează rândurile dacă există o valoare comună în ambele tabele asociate

Dacă doriți să afișați doar rândurile cu valori corespondente în câmpul unificat, utilizați o asociere internă. Access creează automat asocierile interne.

Asocierile interne sunt cele mai comune tipul de asociere. Acestea spun o interogare care rânduri dintr-una dintre asociat tabele corespund rândurilor din celălalt tabel, pe baza datelor în câmpurile asociate. Atunci când rulează o interogare cu o asociere internă, doar rândurile dacă există o valoare comună în ambele tabele asociate vor fi incluse în operațiunile de interogare.

Cum utilizez o asociere internă?

De cele mai multe ori, nu trebuie să faceți nimic pentru a utiliza o asociere internă. Dacă tabelele pe care le adăugați la o interogare au deja relații, Access creează automat o asociere internă între fiecare pereche de tabele asociate, atunci când adăugați tabelele. Dacă se impune integritate referențială, Access afișează, de asemenea, un „1” deasupra liniei de asociere, pentru a arăta ce tabel se află pe partea „unu” a unei relație unu-la-mai mulți și un simbol infinit () pentru a afișa ce tabel este pe partea „mulți”.

Chiar dacă nu ați creat relații, Access creează automat asocierile interne Dacă adăugați două tabele într-o interogare și între cele două tabele fiecare au un câmp cu același sau tip de date compatibile și unul dintre câmpurile de asociere este o cheie primară. Simbolurile "unu" și "mulți" nu se afișează în acest caz, deoarece Integritatea referențială nu este aplicată.

Dacă adăugați interogări la interogare și nu ați creat relațiile dintre aceste interogări, Access nu creați automat asocierile interne între aceste interogări sau între interogărilor și a tabelelor. În general, ar trebui să le creați singur. Creați o asociere internă prin glisarea unui câmp dintr-o sursă de date într-un câmp în altă sursă de date. Access afișează o linie între cele două câmpuri pentru a afișa că s-a creat o asociere.

Sintaxa SQL pentru o asociere internă

Asocierile interne sunt specificate în SQL în clauza FROM, așa cum se arată mai jos:

FROM tabel1 INNER JOIN tabel2 ON tabel1. câmp1 comparați tabel2. câmp2

Operațiunea INNER JOIN (UNIRE INTERNĂ) are următoarele componente:

Parte

Descriere

tabel1, tabel2

Numele tabelelor din care se combină înregistrările.

câmp1, câmp2

Numele câmpurilor care se unesc. Dacă nu sunt numerice, câmpurile trebuie să fie de același tip de date și să conțină același tip de date, dar nu trebuie neapărat să aibă același nume.

comparație între

Orice operator de comparație relativă: "=," "<," ">," "<=," ">=," sau "<>."

Pentru mai multe informații despre sintaxa asocierii interne, consultați subiectul operațiunea INNER JOIN.

Începutul paginii

Afișează toate rândurile dintr-un tabel și rândurile corespondente din alt tabel

Asocierile externe spune o interogare care, chiar dacă unele dintre rânduri pe ambele părți ale asocierii corespund exact, interogarea ar trebui să includeți toate rândurile dintr-un tabel și rândurile din alt tabel care partajează o valoare comună în ambele părți a asocierii.

Asocierile externe pot fi la stânga sau la dreapta. Într-o asociere externă la stânga, interogarea include toate rândurile din primul tabel din declarația SQL, clauza FROM și doar acele rânduri din celălalt tabel în care câmpul de asociere conține valori comune ambelor tabele. Într-o asociere externă la dreapta, interogarea include toate rândurile din al doilea tabel din declarația SQL, clauza FROM și doar acele rânduri din celălalt tabel în care câmpul de asociere conține valori comune ambelor tabele.

Notă : Vă puteți da seama cu ușurință ce tabel este tabelul de la stânga sau dreapta tabel într-o asociere dată făcând dublu clic asocierea și apoi căutați în caseta de dialog Proprietăți unire . Puteți, de asemenea, Comutați la vizualizare SQL și apoi examinați clauza FROM.

Pentru că unele dintre rândurile dintr-o parte a unei asocieri externe nu vor avea rânduri corespunzătoare din celălalt tabel, unele dintre câmpurile returnate în rezultatele interogării din celălalt tabel vor fi goale atunci când rândurile nu corespund.

Cum utilizez o asociere externă?

Creați o asociere externă modificând o asociere internă existentă. Dacă nu există o asociere internă, creați una, apoi transformați-o în asociere externă.

Transformarea unei asocieri interne în asociere externă

  1. În Vizualizarea Proiect a interogării, faceți dublu clic pe asocierea pe care doriți să o modificați.

    Apare caseta de dialog Proprietăți asociere.

  2. În caseta de dialog Proprietăți asociere , notați opțiunile listate lângă opțiunea 2 și opțiunea 3.

  3. Faceți clic pe opțiunea pe care doriți s-o utilizați, apoi faceți clic pe OK.

  4. Access afișează asocierea și o săgeată care indică de la sursa de date unde vor fi incluse toate rândurile în sursa de date unde se vor include doar rândurile care îndeplinesc condiția de asociere.

Asocierile externe ambigue

Dacă creați o interogare care conține o asociere la stânga și o asociere internă, Access nu poate fi capabil de a determina care se alăture operațiune pentru a efectua mai întâi. Deoarece rezultatele diferă în funcție de dacă la stânga sau asociere internă este efectuate mai întâi, Access afișează un mesaj de eroare:

Pentru a corecta această eroare, trebuie să modificați interogarea, astfel încât să fie clar ce asociere să se efectueze mai întâi.

Sintaxa SQL pentru o asociere externă

Asocierile externe sunt specificate în SQL în clauza FROM, așa cum se arată mai jos:

FROM tabel1 [LEFT | DREAPTA] JOIN tabel2
pe table1.field1 comparați de comparație tabel2.câmp2

Operațiunile LEFT JOIN și RIGHT JOIN au următoarele componente:

Parte

Descriere

tabel1, tabel2

Numele tabelelor din care se combină înregistrările.

câmp1, câmp2

Numele câmpurilor care se unesc. Câmpurile trebuie să fie de același tip de date și să conțină aceleași tipuri de date, dar nu trebuie neapărat să aibă același nume.

comparație între

Orice operator de comparație relativă: "=," "<," ">," "<=," ">=," sau "<>."

Pentru mai multe informații despre sintaxa asocierii externe, consultați subiectul LEFT JOIN, RIGHT JOIN operațiuni.

Începutul paginii

Afișează toate rândurile din ambele tabele și Înscrieți-le în cazul în care există o valoare comună

Atunci când doriți să afișați toate rândurile din două tabele și Înscrieți-le pe baza valorilor comune, utilizați o asociere externă completă. Access nu acceptă în mod explicit Asocierile externe completă, dar puteți obține același efect utilizând o interogare de uniune. Următoarea procedură vă arată cum să faceți acest lucru, dar dacă doriți mai multe informații despre interogările de Uniune, consultați secțiunea Consultați și .

Pentru a utiliza o interogare de Uniune pentru a efectua o asociere externă completă:

  1. Creați o interogare cu o asociere externă la stânga pentru câmpul pe care doriți să îl utilizați pentru o asociere externă completă.

  2. Pe fila Pornire, în grupul Vizualizări, faceți clic pe Vizualizare, apoi faceți clic pe Vizualizare SQL.

  3. Apăsați CTRL + C pentru a copia codul SQL.

  4. Ștergeți punctul și virgula de la sfârșitul clauzei FROM, apoi apăsați ENTER.

  5. Tastați UNION, apoi apăsați pe Enter.

    Notă : Nu utilizați cuvântul cheie ALL atunci când utilizați o interogare de uniune pentru a efectua o asociere externă completă.

  6. Apăsați CTRL + V pentru a lipi codul SQL pe care ați copiat în Pasul 3.

  7. În codul pe care l-ați lipit, schimbați LEFT JOIN cu RIGHT JOIN.

  8. Ștergeți semnul punct și virgula de la capătul de-a doua clauze FROM, apoi apăsați pe ENTER.

  9. Adăugați o clauză WHERE care să specifice că valoarea câmpului de asociere este NULL în primul tabel listat în clauza FROM (tabelul de la stânga).

    De exemplu, dacă clauza FROM este:

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

    Adăugați următoarea clauză WHERE:

    WHERE Products.ID IS NULL

  10. Tastați semnul punct și virgulă (;) la sfârșitul clauzei WHERE pentru a indica finalul interogării de uniune.

  11. Pe fila Proiectare, în grupul Rezultate, faceți clic pe Rulare.

Asocieri încrucișate

Încrucișată asocieri sunt diferite de asocieri interne și externe în care acestea nu sunt reprezentate în mod explicit în Access. Într-o asociere încrucișată, fiecare rând dintr-un tabel este combinat cu fiecare rând din alt tabel, care rezultă în ceea ce se numește un produs sau un produs cartezian. Oricând când rulați o interogare care conține tabelele care nu sunt în mod explicit asociat, un produs este rezultatul. Încrucișată asocieri sunt, de obicei, neintenționată, dar există cazuri în care acestea pot fi utile.

De ce aș utiliza o asociere încrucișată?

Dacă doriți să examinați fiecare combinație posibile de rânduri între două tabele sau interogări, utilizați o asociere încrucișată. De exemplu, să presupunem că afacerea a avut un an spectaculos și sunt luați în considerare care oferă reduceri la clienților. Construiți o interogare care însumează fiecare client achiziții, creați un tabel mic care are mai multe posibile reduceri procente și combina două în altă interogare care efectuează o asociere încrucișată. Când se termina cu o interogare care se afișează un set de reduceri ipotetică pentru fiecare client.

Cum utilizez o asociere încrucișată?

O asociere încrucișată este produs oricând includ tabele sau interogări în interogare și nu creați cel puțin o asociere explicită pentru fiecare tabel sau interogare. Acces combină fiecare rând din fiecare tabelul sau interogarea care nu este asociat în mod explicit la orice alt tabel sau interogare pentru a fiecărui al doilea rând în rezultate. Luați în considerare scenariul reduceri la paragraful anterior. Presupun aveți 91 clienți și că doriți să vedeți cinci posibile reduceri procente. De asociere încrucișată produce 455 rânduri (produsul 91 și 5).

După cum s-ar putea imagina, neintenționată asocieri încrucișată poate crea un număr mare de rânduri în rezultatele de interogare. În plus, aceste rezultatele sunt în general de sens, deoarece dacă nu intenționați fapt pentru a combina fiecare rând cu fiecare al doilea rând, majoritatea combinat rândurile care apar în rezultatele va face sens. În cele din urmă, interogările care utilizează neintenționată asocieri încrucișată poate dura foarte mult timp pentru a rula.

Unintentianl încrucișate asociere în Vizualizarea proiectare interogare
O cruce neintenționată asociere în vizualizarea proiect a interogării.

1. câmpurile încercuit ar trebui să asociate între ele.

Produs de asociere neintenționată
Produs returnate de asociere încrucișată neintenționată este descris mai sus.

1. notă număr foarte mare de înregistrări.

Rezultatul interogării corectate
Rezultatele după asocierea corectă este creat.

1. Rețineți că numărul de înregistrări este mult mai mici.

Începutul paginii

Asocierea la tabele pe baza unei inegalități de valori de câmp

Asocierile nu trebuie să se bazeze pe echivalența câmpurilor îmbinate. O asociere se poate baza pe orice operator de comparație, cum ar fi mai mare decât (>), mai mic decât (<) sau nu este egal cu (<>). Asocierile care nu sunt bazate pe echivalență se numesc asocieri inegale.

Dacă doriți să combinați rândurile din două surse de date pe baza valorilor de câmp care nu sunt egale, utilizați o asociere inegală. De obicei, asocierile inegale se bazează pe operatorii de comparație mai mare decât (>), mai mic decât (<), mai mare sau egal cu (>=) sau mai mic sau egal cu (<=). Asocierile inegale care se bazează pe operatorul nu este egal cu (<>) pot returna aproape la fel de multe rânduri ca asocierile încrucișate și rezultatele pot fi dificil de interpretat.

Cum utilizez o asociere inegală?

Asocieri inegale nu sunt acceptate în vizualizarea proiect. Dacă doriți să le utilizați, trebuie să faceți acest lucru, utilizând vizualizarea SQL. Cu toate acestea, să creați o asociere în vizualizarea proiect, Comutați la vizualizare SQL, găsiți egal operator de comparație (=) și modificați l operatorul care doriți să o utilizați. După ce puteți face acest lucru, puteți doar deschide interogarea în vizualizarea proiect din nou dacă prima modificare operator de comparație înapoi la este egal cu (=) în vizualizarea SQL.

Ștergerea unei asocieri

Dacă Access creează automat o asociere pe care nu o doriți sau dacă creați o asociere din greșeală - de exemplu, o asociere între două câmpuri care au tipuri de date diferite - puteți șterge asocierea.

  1. În grila de proiectare a interogării, faceți clic pe asocierea pe care doriți să o eliminați.

  2. Apăsați pe Ștergere.

- sau -

  • În grila de proiectare a interogării, faceți clic dreapta pe asocierea pe care doriți să-l eliminați și apoi faceți clic pe Ștergere.

Începutul paginii

Notă : Exonerare de răspundere pentru traducere automată: Acest articol a fost tradus de un sistem computerizat, fără intervenție umană. Microsoft oferă aceste traduceri automate pentru a ajuta utilizatorii vorbitori de alte limbi decât engleza să beneficieze de conținutul despre produsele, serviciile și tehnologiile Microsoft. Pentru că articolul a fost tradus de un computer, poate conține erori de vocabular, sintaxă sau gramatică.

Consultați și

Adăugarea de înregistrări la un tabel utilizând o interogare de adăugare

Combinarea rezultatelor mai multe interogările de selectare prin utilizarea unei interogări de Uniune

Creați o interogare bazată pe mai multe tabele

Crearea, editarea sau ștergerea unei relații

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×