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 datakilder i en Access-spørring, kan du bruke koblinger til å begrense postene som du vil se, basert på hvordan datakildene er relatert til hverandre. Du også bruke koblinger til å kombinere poster fra begge datakildene slik at hvert par med poster fra kildene blir én post i spørringsresultatene.

Denne artikkelen drøfter ulike typer sammenføyninger og viser hvordan du bruker dem i en spørring. Som standard opprettes automatisk en sammenføyning Hvis det allerede finnes en relasjon mellom to datakilder som brukes i en spørring. Det opprettes også en sammenføyning Hvis det finnes felt som tydelig samsvarer med hverandre. Du kan slette en sammenføyning opprettet automatisk. Denne artikkelen inneholder grunnleggende informasjon om tabellrelasjoner, inkludert hvordan du oppretter en.

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

I denne artikkelen

Oversikt

Sammenføyningstyper

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

Vis alle radene fra én tabell og tilsvarende rader fra den andre tabellen

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

På tvers av sammenføyninger

Slå sammen tabellene som er basert på ulikhet i feltverdier

Slette en sammenføyning

Oversikt

En database er en samling av tabeller med data med logiske relasjoner til hverandre. Du bruker relasjoner til å koble tabeller ved felt som er felles. En tabell kan være en del av en hvilken som helst antall relasjoner, men hver relasjon har alltid nøyaktig to tabeller. En relasjon er representert av en kobling i en spørring.

Når du legger til tabeller i en spørring, oppretter Access koblinger 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 datakilder for en spørring, kan du opprette koblinger mellom kildespørringer, og også mellom spørringer og tabeller som brukes som datakilder.

Sammenføyninger fungerer på samme måte som spørringsvilkår ved at de oppretter regler som dataene må oppfylle for å inkluderes i spørringsoperasjoner. I motsetning til vilkår angir sammenføyninger også at hvert par med rader som oppfyller skal kombineres i postsettet danner én enkelt rad.

Det er fire grunnleggende typer sammenføyninger: indre koblinger, ytre koblinger, tvers sammenføyninger og ulike sammenføyninger. Denne artikkelen beskriver hver type kobling du kan bruke, hvorfor du bruker hver type, og hvordan du oppretter sammenføyningene.

Sammenføyninger er for spørringer det relasjoner er for tabeller, en angivelse av hvordan data i to kilder kan kombineres basert på verdier de har felles. Her er en illustrasjon av en sammenføyning i spørringsutformingsvisning med sammenføyningsegenskapene åpne i en dialogboks:

Boksen Sammenføyningsegenskaper.

Denne linjen mellom tabellene representerer sammenføyningen. Dobbeltklikk en kobling til å åpne den Sammenføyningsegenskaper (angitt) og se gjennom eller endre sammenføyningen.

Noen ganger er sammenføyninger retningsbestemte. Dette området i dialogboksen viser deg hvilken tabell som er hva i sammenføyningen, og hvilke felt som brukes til å koble sammen tabellene.

Dette området bestemmer sammenføyningstypen: Alternativ 1 er en indre kobling, 2 er en venstre ytre kobling og 3 er en høyre ytre kobling.

Felt fra begge tabeller kan brukes, og data som gjelder for en gitt oppgave, viser fra hver av dem. I en indre kobling tas det ikke med andre data. I en ytre kobling tas også ikke-relaterte poster fra én tabell med i spørringsresultatet.

Til toppen av siden

Sammenføyningstyper

Det finnes fire grunnleggende sammenføyningstyper: indre koblinger, ytre koblinger, krysskoblinger og ulike koblinger. Krysskoblinger og ulike koblinger er avanserte sammenføyningstyper og brukes sjelden, men du bør kjenne til dem for å få en fullstendig forståelse av hvordan sammenføyninger fungerer.

Indre koblinger: Bare relaterte data fra begge tabeller kombineres

En indre kobling er én kobling der Access inkluderer data fra en tabell bare hvis det finnes tilsvarende data i den relaterte tabellen og omvendt. I de fleste tilfeller brukes indre koblinger. Når du oppretter en sammenføyning og ikke angir hvilken sammenføyningstype den er, antar Access at du ønsker en indre kobling. Indre koblinger er nyttige fordi de lar deg kombinere data fra to kilder basert på delte verdier – slik at de ser data bare når det er et komplett bilde.

Ytre koblinger: Alle de relaterte dataene kombineres riktig, og alle gjenstående poster fra én tabell tas med

En ytre kobling er som en indre kobling, men legger til de resterende radene fra én av tabellene. Ytre koblinger er retningsbestemte, en venstre ytre kobling tar med alle postene fra venstre tabell – den første tabellen i sammenføyningen – og en høyre ytre kobling tar med alle postene fra den høyre tabellen – den andre tabellen i sammenføyningen.

Fulle ytre koblinger: Alle dataene, kombinert når det er mulig

I noen systemer kan en ytre kobling ta med rader fra begge tabeller, med rader kombinert når de tilsvarer hverandre. Dette kalles en full ytre kobling, og Access støtter dem ikke eksplisitt. Du kan imidlertid bruke en krysskobling og vilkår til å oppnå samme effekt.

Krysskoblinger: Alle dataene, kombinert på alle mulige måter

Vanligvis er en krysskobling en sideeffekt av å legge til to tabeller i en spørring og deretter glemme å koble dem sammen. Access tolker dette som at du vil se alle poster fra én tabell kombinert med alle poster fra den andre tabellen – alle mulige kombinasjoner av poster. I og med at ingen data kan kombineres, produserer denne sammenføyningstypen sjelden nyttige resultater. Men i noen få tilfeller er krysskoblinger det du trenger.

Ulike koblinger: Likt en vanlig sammenføyning, men bruker en annen sammenligning til å koble sammen rader

Ulike koblinger bruker en annen operator enn likhetstegnet (=) til å sammenligne verdier og bestemme om og hvordan dataene skal kombineres. Ulike koblinger støttes ikke eksplisitt, men du kan bruke en krysskobling og vilkår for å oppnå samme effekt.

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

Hvis du vil vise bare de radene som har samsvarende verdier i det sammenkoblede feltet, kan du bruke en indre kobling. Access oppretter automatisk indre koblinger.

Indre koblinger er den vanligste typen sammenføyning. De forteller en spørring at rader fra den ene av de sammenføyde tabellene svarer til rader i den andre tabellen, basert på dataene i de sammenføyde feltene. Når en spørring med en indre kobling kjøres, inkluderes bare de radene der en felles verdi finnes i begge de sammenføyde tabellene i spørringsoperasjoner.

Hvordan bruker jeg en indre kobling?

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

Selv om du ikke har opprettet relasjoner, oppretter Access automatisk indre koblinger hvis du legger til to tabeller i en spørring og begge tabellene inneholder et felt med samme eller kompatible datatypen og ett av sammenføyningsfeltene er en primærnøkkel. "Én" og "mange"-symboler vises ikke i dette tilfellet fordi ikke referanseintegritet.

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

SQL-syntaks for en indre kobling

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

FROM tabell1 INNER JOIN tabell2 ON tabell1.felt1 sammenligne 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.

sammenligne

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

Se emnet INNER JOIN, operasjon hvis du vil ha mer informasjon om syntaksen for indre kobling.

Til toppen av siden

Vis alle radene fra én tabell og tilsvarende rader fra den andre tabellen

Ytre koblinger forteller en spørring som selv om noen av radene på begge sider av sammenføyningen samsvarer eksakt, skal spørringen inkludere alle radene fra én tabell, og de radene fra den andre tabellen som deler en felles verdi på begge sider av sammenføyningen.

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

Obs!: Du kan enkelt se hvilken tabell er tabellen til venstre eller høyre tabell i en gitt sammenføyning ved å dobbeltklikke sammenføyningen og deretter ser i dialogboksen Sammenføyningsegenskaper. Du kan også bytte til SQL-visning, og deretter undersøke FROM-setningsdelen.

Ettersom noen av radene på den ene siden av en ytre kobling ikke har tilhørende rader i den andre tabellen, vil noen av feltene som spørringen returnerer fra den andre tabellen, være tomme når radene ikke samsvarer.

Hvordan bruker jeg en ytre kobling?

Du oppretter en ytre kobling ved å endre en eksisterende indre kobling. Hvis det ikke finnes noen indre koblinger, oppretter du en og endrer den til en ytre kobling.

Endre en indre kobling til en ytre kobling

  1. Dobbeltklikk koblingen du vil endre, i spørringsutformingsvisning.

    Dialogboksen Sammenføyningsegenskaper vises.

  2. Merk deg valgene ved siden av alternativ 2 og alternativ 3 i dialogboksen Sammenføyningsegenskaper.

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

  4. Access viser koblingen og viser en pil som peker fra datakilden der alle radene vil inkluderes, til datadatakilden der bare de radene som oppfyller sammenføyningsbetingelsene, vil inkluderes.

Tvetydige ytre koblinger

Hvis du oppretter en spørring som inneholder LEFT JOIN og en indre kobling, kanskje ikke Access kunne avgjøre hvilken bli med i operasjon som skal utføres først. Fordi resultatet er forskjellig avhengig av om den venstre eller indre sammenføyning utføres først, vises en feilmelding:

Denne feilen rettes opp, må du endre spørringen slik at det blir klart hvilken sammenkobling som skal utføres først.

SQL-syntaks for en ytre kobling

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

FROM tabell1 [venstre | RIGHT] JOIN tabell2
tabell1.felt1 sammenligne 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.

sammenligne

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

Se emnet LEFT JOIN, RIGHT JOIN, operasjoner hvis du vil ha mer informasjon om syntaksen for ytre kobling.

Til toppen av siden

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

Når du vil vise alle rader fra to tabeller og bli med på dem basert på vanlige verdier, bruker du en full ytre sammenføyning. Access støtter ikke eksplisitt full ytre koblinger, men du kan oppnå på samme måte ved å bruke en unionsspørring. Fremgangsmåten nedenfor forklarer hvordan du gjør dette, men hvis du vil ha mer informasjon om unionsspørringer, kan du se Se også-delen.

Bruke en unionsspørring til å utføre en full ytre sammenføyning:

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

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

  3. Kopier SQL-koden ved å trykke CTRL+C.

  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økkelordet ALL når du bruker en unionsspørring til å utføre en full ytre sammenføyning.

  6. Lim inn SQL-koden du kopierte i trinn 3 ved å trykke CTRL+V.

  7. I koden du limte inn, endrer du LEFT JOIN til RIGHT JOIN.

  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øyningsfeltet skal være NULL i den første tabellen som listes opp i FROM-setningsdelen (den venstre tabellen).

    Tenk deg at FROM-setningen for eksempel er:

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

    Du legger da til følgende WHERE-setning:

    WHERE Products.ID IS NULL

  10. Skriv et semikolon (;) på slutten av WHERE-setningen for å angi slutten av unionsspørringen.

  11. Klikk Kjør i Resultater-gruppen i kategorien Utforming.

På tvers av sammenføyninger

Tvers sammenføyninger er forskjellig fra indre og ytre sammenføyninger ved at de ikke er uttrykkelig representert i Access. I en kryssammenføyning kombineres hver rad fra én tabell med hver rad fra en annen tabell, noe som resulterer i det som kalles en kryssprodukt eller Kartesiansk produkt. Hver gang du kjører en spørring som har tabeller som ikke er er uttrykkelig sammenføyd, er en kryssprodukt resultatet. Er resultatet kryssprodukt, men det finnes tilfeller der de kan være nyttig.

Hvorfor bruke en krysskobling?

Hvis du vil undersøke alle mulige kombinasjoner av rader mellom to tabeller eller spørringer, kan du bruke en krysskobling. Anta for eksempel bedriften din har hatt et iøynefallende år, og du har tenkt å gir rabatter til kundene dine. Du kan bygge en spørring som summerer hver kunde kjøp, opprette en liten tabell som inneholder flere mulige rabattprosenter og kombinere to i en annen spørring som utfører en krysskobling. Du ende opp med en spørring som viser et sett med hypotetiske rabatter for hver kunde.

Hvordan bruker jeg en krysskobling?

En krysskobling produseres helst du inkludere tabeller eller spørringer i spørringen og ikke Opprett minst én uttrykkelig sammenføyning for hver tabell eller spørring. Access kombinerer hver rad fra hver tabell eller spørring som ikke er uttrykkelig sammenføyd til en annen tabell eller spørring i annenhver rad i resultatene. Rabatteksemplet i forrige avsnitt. Antar at du har 91 kunder, og at du vil se på fem mulige rabattprosenter. Din krysskobling oppretter 455 rader (produktet av 91 og 5).

Som du kan tenke deg, kan utilsiktet tvers sammenføyninger opprette stort antall rader i spørringsresultatene. I tillegg er disse resultatene vanligvis meningsløse, fordi Hvis du ikke faktisk har tenkt å kombinere hver rad med annenhver rad, de fleste av de kombinerte radene som vises i resultatene ikke gir mening. Til slutt kan spørringer som annenhver ta svært lang tid å kjøre.

Utilsiktet kryssammenføyning i spørringens utformingsvisning
En utilsiktet kryssammenføyning i spørringens utformingsvisning.

1. innsirklede feltene skal kobles til hverandre.

Utilsiktet kryssprodukt
Kryssprodukt som returneres av utilsiktet kryssammenføyning som er angitt ovenfor.

1. Legg merke til svært store antall poster.

Det korrigerte spørringsresultatet
Resultatene etter at riktig sammenføyning er opprettet.

1. Legg merke til at antall poster er mye mindre.

Til toppen av siden

Slå sammen tabellene som er basert på ulikhet i feltverdier

Sammenføyninger trenger ikke å være basert på likhet med de sammenkoblede feltene. En sammenføyning kan baseres på en hvilken som helst sammenligningsoperator, for eksempel større enn (>), mindre enn (<) eller er ikke lik (<>). Sammenføyninger som ikke baseres på likhet, kalles ulike koblinger.

Bruk en ulik kobling når du vil kombinere radene i to datakilder, basert på feltverdier som ikke er like. Ulike koblinger baseres vanligvis på en av sammenligningsoperatorene større enn (>), mindre enn (<), større enn eller lik (>=) eller mindre enn eller lik (<=). Ulike koblinger som baseres på operatoren er ikke lik (<>), kan returnere nesten like mange rader som krysskoblinger, og resultatene kan være vanskelige å tolke.

Hvordan bruker jeg en ulik kobling?

Ulike sammenføyninger støttes ikke i utformingsvisning. Hvis du vil bruke dem, må du gjøre dette ved å bruke SQL-visning. Men du kan opprette en kobling i utformingsvisning, bytte til SQL-visning, Finn er lik (=) sammenligningsoperator, og endre den til ønsket operator du vil bruke. Når du gjør dette, kan du bare åpne spørringen i utformingsvisning på nytt Hvis du først endrer sammenligningsoperatoren tilbake til er lik (=) i SQL-visning.

Slette en sammenføyning

Hvis Access automatisk oppretter en sammenføyning du ikke ønsker, eller du oppretter en sammenføyning ved en feiltakelse – for eksempel en sammenføyning mellom to felt med ulike datatyper – kan du slette sammenføyningen.

  1. Klikk sammenføyningen du vil slette, i spørringsutformingsrutenettet.

  2. Trykk Slett.

– eller –

  • Høyreklikk sammenføyningen du vil fjerne, spørringsutformingsrutenettet, og klikk deretter Slett.

Til toppen av siden

Se også

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

Kombinere resultatene av flere utvalgsspørringer ved å bruke en unionsspørring

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.

×