Føye sammen tabeller og spørringer

Føye sammen tabeller og spørringer

Obs!: Vi ønsker å gi deg det nyeste hjelpeinnholdet så raskt som mulig, på ditt eget språk. Denne siden er oversatt gjennom automatisering og kan inneholde grammatiske feil eller unøyaktigheter. Formålet vårt er at innholdet skal være nyttig for deg. Kan du fortelle oss om informasjonen var nyttig for deg nederst på denne siden? Her er den engelske artikkelen for enkel referanse.

Når du tar med flere data kilder i en Access-spørring, bruker du sammenføyninger til å begrense postene du vil se, basert på hvordan data kildene er relatert til hverandre. Du kan også bruke sammenføyninger til å kombinere poster fra begge data kildene, slik at hvert par med poster fra kildene blir én post i spørrings resultatene.

Denne artikkelen beskriver de ulike typene sammenføyninger og viser deg hvordan du bruker dem i en spørring. Som standard opprettes en sammenføyning automatisk hvis det allerede finnes en relasjon mellom to data kilder som du bruker i en spørring. Du kan også opprette en sammenføyning hvis det er felt som er tydelig identiske. Du kan slette en sammenføyning som er opprettet automatisk. Denne artikkelen inneholder grunnleggende informasjon om tabell relasjoner, inkludert hvordan du oppretter en.

Obs!: Du kan bli med i spørringer på samme måte som du føyer sammen tabeller, og kan også bli med i begge.

I denne artikkelen

Oversikt

Sammenføynings typer

Vise rader der en felles verdi finnes i begge de sammenføyde tabellene

Vise alle rader fra én tabell og tilsvarende rader fra den andre tabellen

Vis alle rader fra begge tabeller, og bli med i dem der det finnes en felles verdi

Kryss koblinger

Føye sammen tabeller basert på en ulik felt verdi

Slette en sammenføyning

Oversikt

En database er en samling av data tabeller som bærer logiske relasjoner til hverandre. Du kan bruke relasjoner til å koble sammen tabeller etter felt som de har til felles. En tabell kan være en del av et hvilket som helst antall relasjoner, men hver relasjon har alltid nøyaktig to tabeller. I en spørring er en relasjon representert av en sammenføyning.

Når du legger til tabeller i en spørring, oppretter Access sammenføyninger som er basert på relasjoner som er definert mellom tabellene. Du kan manuelt opprette sammenføyninger i spørringer, selv om de ikke representerer relasjoner som allerede er definert. Hvis du bruker andre spørringer (i stedet for eller i tillegg til tabeller) som data kilder for en spørring, kan du opprette sammenføyninger mellom kilde spørringene, og også mellom disse spørringene og eventuelle tabeller som du bruker som data kilder.

Sammenføyninger fungerer på samme måte som spørrings vilkår i at de oppretter regler som dataene må samsvare med for å bli inkludert i spørrings operasjonene. I motsetning til vilkår angir sammenføyninger også at hvert par med rader som oppfyller sammenføynings betingelsene, skal være kombinert i post settet for å danne én rad.

Det finnes fire grunnleggende typer sammenføyninger: indre sammenføyninger, ytre sammenføyninger, kryss koblinger og ulike sammenføyninger. Denne artikkelen omslutter hver type sammenføyning du kan bruke, hvorfor du bruker hver type, og hvordan du oppretter sammenføyningene.

Sammenføyninger er for spørringer hvilke relasjoner som skal være tabeller: en indikasjon på hvordan data i to kilder kan kombineres basert på data verdier de har til felles. Her er en illustrasjon av en sammenføyning i utformings visning for spørring, med egenskapene for sammenføyninger åpen i en dialog boks:

Boksen Sammenføyningsegenskaper.

Denne linjen mellom tabellene representerer sammenføyningen. Dobbelt klikk en kobling for å åpne dialog boksen sammenføynings Egenskaper (vist), og se gjennom eller endre sammenføyningen.

Sammenføyninger har noen ganger retning. Dette området i dialog boksen viser deg hvilken tabell som er i sammenføyningen, og hvilke felt som brukes til å føye sammen tabellene.

Dette området bestemmer hvilken type sammenføyning: alternativ 1 er en indre kobling, 2 er en venstre ytre kobling, og 3 er en høyre ytre kobling.

Felt fra begge tabellene kan brukes, og data som gjelder en gitt oppgave, vises fra hver. I en indre kobling inkluderes ingen andre data. I en ytre sammenføyning blir ikke-relaterte poster fra én tabell inkludert i spørrings resultatene.

Til toppen av siden

Sammenføynings typer

Det finnes fire grunnleggende typer sammenføyninger: indre sammenføyninger, ytre sammenføyninger, kryss koblinger og ulike sammenføyninger. Kryss koblinger og ulike koblinger er avanserte sammenføynings typer og brukes sjelden, men du bør vite om de har en fullstendig forståelse av hvordan sammenføyninger fungerer.

Indre koblinger: bare relaterte data fra begge tabellene kombinert

En indre kobling er en i Access som bare inneholder data fra en tabell hvis det finnes tilsvarende data i den relaterte tabellen, og omvendt. Meste parten av tiden vil du bruke indre sammenføyninger. Når du oppretter en sammenføyning og ikke angir hvilken type sammenføyning den er, antar Access at du vil ha en INNER JOIN. Indre koblinger er nyttige fordi de lar deg kombinere data fra to kilder basert på delte verdier, slik at du bare ser data når det er et fullstendig bilde.

Ytre koblinger: alle de relaterte dataene kombinert på riktig måte, pluss alle de gjenstående postene fra én tabell

En ytre kobling er som en indre kobling, men legger sammen de gjenværende radene fra én av tabellene. Ytre koblinger er retning: en venstre ytre kobling inkluderer alle postene fra den venstre tabellen – den første tabellen i sammenføyningen – og en høyre ytre kobling inkluderer alle postene fra den høyre tabellen – den andre tabellen i sammenføyningen.

Fullstendige ytre sammenføyninger: alle dataene, kombinert der det er mulig

I enkelte systemer kan en ytre kobling inkludere alle rader fra begge tabellene, med rader som er kombinert når de Sams varer. Dette kalles en fullstendig ytre kobling, og Access støtter ikke eksplisitt dem. Du kan imidlertid bruke en kryss kobling og et vilkår til å oppnå samme effekt.

Kryss koblinger: alle dataene, kombinert på alle mulige måter

Vanligvis er en kryss kobling en side effekt for å legge til to tabeller i en spørring og deretter forgetting for å bli med. Access tolker dette for å bety at du vil se hver post fra en tabell kombinert med hver post fra den andre tabellen – hver mulige kombinasjon av poster. Siden ingen data kan kombineres, gir denne typen sammenføyning sjelden nyttige resultater. Men det er noen tilfeller der en kryss kobling bare er det du trenger.

Ulike sammenføyninger: som en vanlig sammenføyning, men bruk av en annen sammenligning for å kombinere rader

Ulike sammenføyninger bruker en annen operator enn likhets tegnet (=) for å sammenligne verdier og bestemme om og hvordan dataene skal kombineres. Ulike koblinger støttes ikke eksplisitt, men du kan bruke en kryss kobling og kriterier for å oppnå samme effekt.

Vise rader der en felles verdi finnes i begge de sammenføyde tabellene

Hvis du bare vil vise radene som har samsvarende verdier i det sammenføyde feltet, bruker du en indre sammenføyning. Det opprettes automatisk indre sammenføyninger i Access.

Indre sammenføyninger er den vanligste sammenføyningstypen. De forteller en spørring om at rader fra en av de sammenføyde tabellene tilsvarer rader i den andre tabellen, basert på dataene i de sammenføyde feltene. Når en spørring med en indre kobling kjøres, blir bare de radene der det finnes en felles verdi i begge de sammenføyde tabellene, inkludert i spørrings operasjonene.

Hvordan bruker jeg en indre sammenføyning?

Vanligvis trenger du ikke gjøre noe for å bruke en indre sammenføyning. Hvis tabellene du legger til i en spørring, allerede har relasjoner, oppretter Access automatisk en indre sammenføyning mellom hvert par med relaterte tabeller, når du legger til tabellene. Hvis referanseintegritet håndheves, viser Access også et 1-tall over koblingslinjen for å angi hvilken tabell som er på «én»-siden i en én-til-mange-relasjon, og et uendeligsymbol () for å angi hvilken tabell som er på «mange»-siden.

Selv om du ikke har opprettet relasjoner, oppretter Access automatisk indre sammenføyninger hvis du legger til to tabeller i en spørring, og disse tabellene har et felt med den samme eller kompatible data typen og et av sammenføynings feltene er en primærnøkkel. Symbolene "én" og "mange" vises ikke i dette tilfellet fordi referanseintegritet ikke er fremtvunget.

Hvis du legger til spørringer i spørringen og ikke har opprettet relasjoner mellom disse spørringene, oppretter ikke Access automatisk indre sammenføyninger mellom disse spørringene eller mellom spørringer og tabeller. Vanligvis bør du opprette dem selv. Du oppretter en indre sammenføyning ved å dra et felt fra én data kilde til et felt i en annen data kilde. Access viser en linje mellom de to feltene for å vise at en kobling er opprettet.

SQL-syntaks for en indre kobling

Indre koblinger er angitt i SQL i FROM-setningsdelen, som vist nedenfor:

FROM tabell1 INNER JOIN tabell2 ON tabell1.felt1 Sammenlign Tabell2.felt2

Operasjonen INNER JOIN har følgende deler:

Del

Beskrivelse

tabell1, tabell2

Navnene på tabellene som postene kombineres fra.

felt1, felt2

Navnene på de sammenkoblede feltene. Hvis de ikke er numeriske, må feltene være av samme datatype og inneholde samme type data, men de trenger ikke ha samme navn.

sammenlign

En relasjonssammenligningsoperator: "=," "<," ">," "<=," ">=," eller "<>."

Hvis du vil ha mer informasjon om syn tak sen for indre kobling, kan du se emnet INNER JOIN.

Til toppen av siden

Vise alle rader fra én tabell og tilsvarende rader fra den andre tabellen

Ytre sammenføyninger forteller en spørring om at noen av radene på begge sider av sammenføyningen Sams varer nøyaktig, spørringen skal inneholde alle radene fra én tabell, og også de radene fra den andre tabellen som deler en felles verdi på begge sider av sammenføyningen.

Ytre sammenføyninger kan være venstre ytre sammenføyninger eller være høyre ytre koblinger. I en venstre ytre kobling inneholder spørringen alle radene fra den første tabellen i SQL-setningen FROM-setning, og bare de radene fra den andre tabellen der det sammenføyde feltet inneholder verdier som er felles for begge tabellene. I en høyre ytre kobling inneholder spørringen alle radene fra den andre tabellen i SQL-setningen FROM-setning, og bare de radene fra den andre tabellen der det sammenføyde feltet inneholder verdier som er felles for begge tabellene.

Obs!: Du kan enkelt finne ut hvilken tabell som er den venstre tabell eller den høyre tabellen i en gitt kobling ved å dobbeltklikke sammenføyningen og deretter se i dialog boksen sammenføynings egenskaper . Du kan også bytte til SQL-visning, og deretter undersøke FROM-setningsdelen.

Fordi noen av radene på én side av en ytre kobling ikke har tilsvarende rader fra den andre tabellen, vil noen av feltene som returneres i spørrings resultatene fra den andre tabellen være tomme når radene ikke Sams varer.

Hvordan bruker jeg en ytre sammenføyning?

Du oppretter en ytre sammenføyning ved å endre en eksisterende indre kobling. Hvis det ikke finnes en indre kobling, oppretter du en, og deretter endrer du den til en ytre sammenføyning.

Endre en indre kobling til en ytre kobling

  1. Dobbelt klikk sammenføyningen du vil endre, i spørrings utformings visning.

    Dialogboksen Sammenføyningsegenskaper vises.

  2. I dialog boksen sammenføynings egenskaper noterer du valgene som er oppført ved siden av alternativ 2 og alternativ 3.

  3. Klikk på alternativet du vil bruke, og klikk deretter på OK.

  4. Access viser koblingen, og viser en pil som peker fra data kilden der alle radene vil være inkludert i data kilden der bare de radene som oppfyller sammenføynings betingelsen, blir inkludert.

Tvetydige ytre sammenføyninger

Hvis du oppretter en spørring som inneholder en LEFT JOIN og en INNER JOIN, kan det hende at det ikke er mulig å finne ut hvilken JOIN-operasjon som skal utføres først. Siden resultatene er forskjellige avhengig av om den venstre sammenføyningen eller den indre sammenføyningen utføres først, vises en feil melding:

Hvis du vil rette denne feilen, må du endre spørringen slik at den er klar til å utføre først.

SQL-syntaks for en ytre kobling

Ytre koblinger angis i SQL i FROM-setningsdelen, som vist nedenfor:

FROM Tabell1 [Left | Right] JOIN Tabell2
on Tabell1. felt1 Compare Tabell2. Felt2

LEFT JOIN- og RIGHT JOIN-operasjonene har følgende deler:

Del

Beskrivelse

tabell1, tabell2

Navnene på tabellene som postene kombineres fra.

felt1, felt2

Navnene på de koblede feltene. Feltene må være av samme datatype og inneholde samme type data, men de trenger ikke ha samme navn.

sammenlign

En relasjonssammenligningsoperator: "=," "<," ">," "<=," ">=," eller "<>."

Hvis du vil ha mer informasjon om syn tak sen for ytre sammenføyninger, kan du se emnet LEFT JOIN, RIGHT JOIN-operasjoner.

Til toppen av siden

Vis alle rader fra begge tabeller, og bli med i dem der det finnes en felles verdi

Når du vil vise alle rader fra to tabeller og bli med i dem basert på felles verdier, bruker du en fullstendig ytre sammenføyning. Access støtter ikke eksplisitt fullstendige ytre sammenføyninger, men du kan oppnå samme effekt ved å bruke en Unions spørring. Fremgangs måten nedenfor forklarer hvordan du gjør dette, men hvis du vil ha mer informasjon om Unions spørringer, kan du se Se også -delen.

Slik bruker du en Unions spørring til å utføre en fullstendig ytre sammenføyning:

  1. Opprett en spørring som har en venstre ytre sammenføyning på feltet som du vil bruke for en fullstendig ytre sammenføyning.

  2. Klikk Vis i Visninger-gruppen i kategorien Hjem, og klikk deretter SQL-visning.

  3. Trykk CTRL + C for å kopiere SQL-koden.

  4. Slett semikolonet på slutten av FROM-setningsdelen, og trykk deretter ENTER.

  5. Skriv inn UNION, og trykk deretter på ENTER.

    Obs!: Ikke bruk nøkkel ordet ALL når du bruker en Unions spørring til å utføre en fullstendig ytre kobling.

  6. Trykk CTRL + V for å lime inn SQL-koden du kopierte i trinn 3.

  7. Endre LEFT JOIN til RIGHT JOINi koden du limte inn.

  8. Slett semikolonet på slutten av den andre FROM-setningsdelen, og trykk deretter ENTER.

  9. Legg til en WHERE-setningsdel som angir at verdien til sammenføynings feltet er NULL i den første tabellen som er oppført i FROM-setningsdelen (den venstre tabellen).

    Hvis for eksempel FROM-setningsdelen er:

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

    Du legger til følgende WHERE-setning:

    WHERE Products.ID IS NULL

  10. Skriv inn et semikolon (;) på slutten av WHERE-setningsdelen for å angi slutten på Unions spørringen.

  11. Klikk på Kjør i Resultater-gruppen på Utforming-fanen.

Kryss koblinger

Kryss koblinger er forskjellige fra indre og ytre koblinger i at de ikke er uttrykkelig representert i Access. I en kryss kobling kombineres hver rad fra én tabell med hver rad fra en annen tabell, noe som kalles et kryss produkt eller et kartesiske produkt. Når du kjører en spørring som har tabeller som ikke er direkte sammenføyd, er resultatet av et kryss produkt. Kryss sammenføyninger er vanligvis utilsiktet, men det er tilfeller der de kan være nyttige.

Hvorfor bør jeg bruke en kryss kobling?

Hvis du vil undersøke alle mulige kombinasjoner av rader mellom to tabeller eller spørringer, kan du bruke en kryss kobling. Tenk deg for eksempel at bedriften din har hatt et Spectacular år, og du vurderer å gi kundene dine en rabatt. Du kan bygge en spørring som summerer hver kundes kjøp, opprette en liten tabell som har flere mulige rabatt prosenter, og kombinere de to i en annen spørring som utfører en kryss kobling. Du ender opp med en spørring som viser et sett med hypotetiske rabatter for hver kunde.

Hvordan bruker jeg en kryss kobling?

En kryss kobling produseres når du inkluderer tabeller eller spørringer i spørringen og ikke oppretter minst én eksplisitt sammenføyning for hver tabell eller spørring. Access kombinerer hver rad fra hver tabell eller spørring som ikke er direkte knyttet til andre tabeller eller spørringer, til annenhver rad i resultatene. Vurder rabatt scenarioet fra forrige avsnitt. Anta at du har 91-kunder, og at du vil se på fem mulige rabatt prosenter. Kryss sammenføyningen produserer 455 rader (produktet av 91 og 5).

Som du kanskje forestiller, kan du opprette svært store antall rader i spørrings resultatene i et utilsiktet kryss sammenføyninger. I tillegg er disse resultatene vanligvis meningsløse, fordi hvis du ikke faktisk har tenkt å kombinere hver rad med annenhver rad, vil de fleste de kombinerte radene som vises i resultatene, ikke være fornuftige. Til slutt kan spørringer som bruker utilsiktede kryss koblinger, bruke lang tid på å kjøre.

Utilsiktet kryssammenføyning i spørringens utformingsvisning

1. de innsirklede feltene skal kobles sammen til hverandre.

Utilsiktet kryssprodukt

1. Legg merke til det svært store antallet poster.

Det korrigerte spørringsresultatet

1. Vær oppmerksom på at antall poster er mye mindre.

Til toppen av siden

Føye sammen tabeller basert på en ulik felt verdi

Sammenføyninger må ikke være basert på Equivalence for de sammenføyde feltene. En kobling kan være basert på alle sammenligningsoperatorer, for eksempel større enn (>), mindre enn (<) eller ikke lik (<>). Sammenføyninger som ikke er basert på Equivalence, kalles ulike sammenføyninger.

Hvis du vil kombinere radene med to data kilder basert på felt verdier som ikke er like, bruker du en ulik sammenføyning. Ulike koblinger er vanligvis basert på de større enn (>), mindre enn (<), større enn eller lik (> =) eller mindre enn eller lik (< =) sammenligningsoperatorer. Ulike koblinger som er basert på ikke lik (<>)-operatoren, kan returnere nesten så mange rader som kryss koblinger, og resultatene kan være vanskelig å tolke.

Hvordan bruker jeg en ulik sammenføyning?

Ulike koblinger støttes ikke i utformings visning. Hvis du vil bruke dem, må du gjøre dette ved hjelp av SQL-visning. Du kan imidlertid opprette en sammenføyning i utformings visning, bytte til SQL-visning, finne operatoren Equals (=) og endre den til operatoren du vil bruke. Når du har gjort dette, kan du bare åpne spørringen i utformings visning igjen hvis du først endrer sammenligningsoperatoren tilbake til er lik (=) i SQL-visning.

Slette en sammenføyning

Hvis Access automatisk oppretter en sammenføyning som du ikke vil ha, eller hvis du oppretter en sammenføyning ved en feil tagelse, for eksempel en sammenføyning mellom to felt som har ulike data typer, kan du slette koblingen.

  1. Klikk sammenføyningen du vil fjerne, i utformings rute nettet for spørringen.

  2. Trykk på Slett.

- eller -

  • Høyre klikk sammenføyningen du vil fjerne, i spørrings utformings rute nettet, og klikk deretter Slett.

Til toppen av siden

Se også

Legge til poster i en tabell ved å bruke en tilføyings spørring

Kombinere resultatene av flere utvalgs spørringer ved hjelp av Unions spørringer

Opprette en spørring basert på flere tabeller

Opprette, redigere eller slette en relasjon

Bli bedre på Office
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Office Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×