Koppla tabeller och frågor

Koppla tabeller och frågor

Obs!: Vi vill kunna erbjuda dig bästa möjliga supportinnehåll så fort som möjligt och på ditt språk. Den här sidan har översatts med hjälp av automatiserad översättning och kan innehålla grammatiska fel eller andra felaktigheter. Vår avsikt är att den här informationen ska vara användbar för dig. Vill du berätta för oss om informationen är till hjälp längst ned på sidan? Här är artikeln på engelska som referens.

När du inkluderar flera data källor i en Access-fråga kan du använda kopplingar för att begränsa vilka poster som ska visas, baserat på hur data källorna är relaterade till varandra. Du kan också använda kopplingar för att kombinera poster från båda data källorna så att varje par med poster från källorna blir en post i frågeresultatet.

I den här artikeln beskrivs de olika kopplings typerna och hur du använder dem i en fråga. Som standard skapas en koppling automatiskt om det redan finns en relation mellan två data källor som du använder i en fråga. En koppling skapas också om det finns fält som klart stämmer överens med varandra. Du kan ta bort en automatiskt skapad koppling. Den här artikeln innehåller grundläggande information om tabell relationer, inklusive hur du skapar en.

Obs!: Du kan gå med i frågor på samma sätt som du går med i tabeller och kan även gå med i båda.

I den här artikeln

Översikt

Kopplings typer

Visa rader där det finns ett gemensamt värde i båda de kopplade tabellerna

Visa alla rader från en tabell, och motsvarande rader från den andra tabellen

Visa alla rader från båda tabellerna och gå med i dem där det finns ett gemensamt värde

Kors kopplingar

Ansluta till tabeller baserat på olikheter i fält värden

Ta bort en koppling

Översikt

En databas är en samling tabeller med data som kallas logiska relationer. Du använder relationer för att koppla samman tabeller med fält som de har gemensamt. En tabell kan ingå i ett obegränsat antal relationer, men varje relation har alltid två tabeller. I en fråga representeras en relation av en koppling.

När du lägger till tabeller i en fråga skapar Access kopplingar som baseras på relationer som har definierats mellan tabellerna. Du kan skapa kopplingar manuellt i frågor, även om de inte representerar relationer som redan har definierats. Om du använder andra frågor (istället för eller i tillägg till tabeller) som data källor för en fråga kan du skapa kopplingar mellan käll frågorna och även mellan frågorna och alla tabeller som du använder som data källor.

Kopplingar fungerar på liknande sätt för frågevillkor som de upprättar regler om att dessa data måste matchas för att tas med i fråge operationerna. Till skillnad från villkor anger kopplingar också att varje par rader som uppfyller kopplings villkoren kombineras i post mängden för att bilda en enda rad.

Det finns fyra olika typer av kopplingar: inre kopplingar, yttre kopplingar, kors kopplingar och olika kopplingar. I den här artikeln lär du dig vilka typer av kopplingar du kan använda, varför du ska använda dem och hur du skapar kopplingarna.

Kopplingar är till att fråga vilka relationer som är till tabeller: en indikation på hur data i två källor kan kombineras baserat på data värden som de har gemensamt. Här är en illustration av en koppling i Frågedesign, med kopplingens egenskaper öppna i en dialog ruta:

Rutan Kopplingsegenskaper.

Den här raden mellan tabellerna representerar kopplingen. Dubbelklicka på en koppling för att öppna dialog rutan kopplings egenskaper (som visas) och granska eller ändra kopplingen.

Kopplingar fungerar ibland. I det här området i dialog rutan visas vilken tabell som finns i kopplingen och vilka fält som används för att gå med i tabellerna.

Det här området bestämmer kopplings typ: alternativ 1 är en inre koppling, 2 är en vänster yttre koppling och 3 är en höger yttre koppling.

Fält från båda tabellerna kan användas och data som hör till en viss uppgift visas från var och en av dem. I en inre koppling ingår inga andra data. I en yttre koppling ingår inte relaterade poster från en tabell i frågeresultatet.

Överst på sidan

Kopplings typer

Det finns fyra olika typer av kopplingar: inre kopplingar, yttre kopplingar, kors kopplingar och olika kopplingar. Kors kopplingar och olika kopplingar är avancerade kopplings typer och används sällan, men du bör veta mer om dem för att få en fullständig förståelse för hur kopplingar fungerar.

Inre kopplingar: endast relaterade data från båda tabellerna

En inre koppling är en i vilken Access bara innehåller data från en tabell om det finns motsvarande data i den relaterade tabellen och vice versa. Vanligt vis använder du inre kopplingar. När du skapar en koppling och inte anger vilken typ av koppling det är, förutsätts det att du vill ha en inre koppling. Inre kopplingar är användbara eftersom de kan kombinera data från två källor baserat på delade värden – så att du bara ser data när det finns en komplett bild.

Yttre kopplingar: alla relaterade data kombineras korrekt plus alla återstående poster från en tabell

En yttre koppling är som en inre koppling, men övriga rader läggs till i en av tabellerna. Yttre kopplingar riktas mot: en vänster yttre koppling innehåller alla poster från den vänstra tabellen-den första tabellen i kopplingen – och en höger yttre koppling innehåller alla poster från den högra tabellen – den andra tabellen i kopplingen.

Fullständiga yttre kopplingar: alla data, kombinerat när det är möjligt

I vissa system kan en yttre koppling omfatta alla rader från båda tabellerna, med kombinerade rader när de motsvarar varandra. Den här kallas för en hel yttre koppling, men stöder inte heller heller Access. Men du kan använda en kors koppling och villkor för att åstadkomma samma effekt.

Kors kopplingar: alla data, kombinerade på alla möjliga sätt

Vanligt vis är en kors koppling en sido effekt av att lägga till två tabeller i en fråga och sedan glömmer för att gå med. Access tolkar detta för att visa varje post från en tabell tillsammans med varje post från den andra tabellen – varje möjlig kombination av poster. Eftersom det inte går att kombinera data kan du använda den här typen av koppling sällan för att ge användbara resultat. Men det finns några fall när en kors koppling är precis vad du behöver.

Olika kopplingar: som en vanlig koppling, men med en annan jämförelse för att kombinera rader

För olika kopplingar används en annan operator än likhets tecknet (=) för att jämföra värden och bestämma om och hur data ska kombineras. Olika kopplingar stöds inte explicit, men du kan använda en kors koppling och villkor för att åstadkomma samma effekt.

Visa rader där det finns ett gemensamt värde i båda de kopplade tabellerna

Om du bara vill visa de rader som har matchande värden i kopplings fältet använder du en inre koppling. I Access skapas inre kopplingar automatiskt.

Inre kopplingar är den vanligaste typen av koppling. De anger att en fråga som rader från en av de kopplade tabellerna motsvarar raderna i den andra tabellen, baserat på data i de kopplade fälten. När en fråga med en inre koppling körs är det bara de rader där det finns ett gemensamt värde i båda de kopplade tabellerna som tas med i fråge operationerna.

Hur använder jag en inre koppling?

Vanligt vis behöver du inte göra något för att använda en inre koppling. Om tabellerna som du lägger till i en fråga redan har relationer skapas en inre koppling automatiskt mellan varje par relaterade tabeller när du lägger till tabeller. Om referensintegritet används visas också "1" ovanför kopplingslinjen, som anger vilken tabell som finns på 1-sidan i en en-till-många-relation, och ett oändlighetstecken (), som anger vilken tabell som finns på N-sidan.

Även om du inte har skapat relationer skapas inre kopplingar automatiskt om du lägger till två tabeller i en fråga och de tabellerna har ett fält med samma eller kompatibel datatyp och ett av kopplings fälten är en primärnyckel. Tecknen "1" och "många" visas inte i det här fallet eftersom referens integritet inte tillämpas.

Om du lägger till frågor i frågan och inte har skapat relationer mellan frågorna skapas inte inre kopplingar automatiskt mellan dessa frågor eller mellan frågor och tabeller. Vanligt vis bör du skapa dem själv. Du skapar en inre koppling genom att dra ett fält från en data källa till ett fält i en annan data källa. Access visar en linje mellan de två fälten för att visa att en koppling har skapats.

SQL-syntax för en inre koppling

Inre kopplingar anges i SQL i FROM-satsen, vilket visas nedan:

FROM tabell1 INNER JOIN tabell2 ON tabell1.Fält1 compare tabell2.fält2

Operationen INNER JOIN består av följande syntaktiska element:

Element

Beskrivning

tabell1, tabell2

Namnen på de tabeller som innehåller de poster som ska kombineras.

fält1, fält2

Namnen på de fält som ska kombineras. Om fälten inte är numeriska måste fälten ha samma datatyp och innehålla samma information, men de behöver inte ha samma namn.

jämför

En jämförelseoperator: "=," "<," ">," "<=," ">=" eller "<>."

Mer information om syntax för Inner Join finns i avsnittet Inner Join.

Överst på sidan

Visa alla rader från en tabell, och motsvarande rader från den andra tabellen

Yttre kopplingar anger en fråga som även om en del av raderna på båda sidor av kopplingen motsvarar exakt, frågan ska innehålla alla rader från en tabell, och även de rader från den andra tabellen som delar ett gemensamt värde på båda sidorna av kopplingen.

Yttre kopplingar kan flyttas till vänster yttre kopplingar eller yttre kopplingar. I en vänster yttre koppling inkluderar frågan alla rader från den första tabellen i SQL-satsen från-satsen, och bara de rader från den andra tabellen där fältet Koppla ihop innehåller värden som är gemensamma för båda tabellerna. I en höger yttre koppling inkluderar frågan alla rader från den andra tabellen i SQL-satsen från-satsen, och bara de rader från den andra tabellen där fältet Koppla ihop innehåller värden som är gemensamma för båda tabellerna.

Obs!: Du kan enkelt se vilken tabell som är den vänstra tabellen eller den högra tabellen i en given koppling genom att dubbelklicka på kopplingen och sedan titta i dialog rutan kopplings egenskaper . Du kan också växla till SQL-vyn och sedan undersöka FROM-satsen.

Eftersom vissa av raderna på en sida av en yttre koppling inte har motsvarande rader från den andra tabellen blir vissa av de fält som returneras i frågeresultatet från den andra tabellen tomma när raderna inte motsvarar varandra.

Hur använder jag en yttre koppling?

Du skapar en yttre koppling genom att ändra en befintlig inre koppling. Om det inte finns någon inre koppling skapar du en och ändrar den till en yttre koppling.

Ändra en inre koppling till en yttre koppling

  1. Dubbelklicka på den koppling som du vill ändra i Frågedesign.

    Dialogrutan Kopplingsegenskaper visas.

  2. I dialog rutan kopplings egenskaper antecknar du valen bredvid alternativ 2 och alternativ 3.

  3. Klicka på det alternativ som du vill använda och sedan på OK.

  4. I Access visas kopplingen och en pil som pekar på data källan där alla rader kommer att inkluderas i data källan där endast de rader som uppfyller kopplings villkoren tas med.

Tvetydiga yttre kopplingar

Om du skapar en fråga som innehåller en vänster koppling och en inre koppling kanske det inte går att avgöra vilken JOIN-åtgärd som ska utföras. Eftersom resultaten är olika beroende på om den vänstra kopplingen eller den inre kopplingen utförs först visas ett fel meddelande:

För att åtgärda det här felet måste du ändra frågan så att den är klar.

SQL-syntax för en yttre koppling

Yttre kopplingar anges i SQL i FROM-satsen, vilket visas nedan:

FRÅN Tabell1 [left | Right] join tabell2
on Tabell1. Fält1 compare tabell2. fält2

Åtgärderna KOPPLA VÄNSTER och KOPPLA HÖGER består av följande element:

Element

Beskrivning

tabell1, tabell2

Namnen på de tabeller som innehåller de poster som ska kombineras.

fält1, fält2

Namnen på de fält som ska kombineras. Fälten måste ha samma datatyp och innehålla samma typ av data, men de behöver inte ha samma namn.

jämför

En jämförelseoperator: "=," "<," ">," "<=," ">=" eller "<>."

Mer information om syntax för yttre koppling finns i avsnittet koppla till, höger kopplings åtgärder.

Överst på sidan

Visa alla rader från båda tabellerna och gå med i dem där det finns ett gemensamt värde

När du vill visa alla rader från två tabeller och ansluta dem baserat på vanliga värden använder du en hel yttre koppling. Access stödjer inte helt yttre kopplingar, men du kan åstadkomma samma effekt med en unions fråga. I följande procedur förklaras hur du gör det, men om du vill ha mer information om unions frågor kan du läsa avsnittet Se även .

Så här använder du en unions fråga för att utföra en yttre koppling:

  1. Skapa en fråga som har en vänster yttre koppling på det fält som du vill använda för en hel yttre koppling.

  2. Klicka på Visa och sedan på SQL-vy i gruppen Vyer på fliken Start.

  3. Tryck på CTRL + C för att kopiera SQL-koden.

  4. Ta bort semikolon i slutet av FROM-satsen och tryck på RETUR.

  5. Skriv UNION och tryck sedan på RETUR.

    Obs!: Använd inte nyckelordet ALL när du använder en unions fråga för att utföra en yttre koppling.

  6. Tryck på CTRL + V för att klistra in SQL-koden som du kopierade i steg 3.

  7. I koden du har klistrat in ändrar du vänster till höger.

  8. Ta bort semikolonet i slutet av den andra FROM-satsen och tryck sedan på RETUR.

  9. Lägga till en WHERE-sats som anger att värdet för kopplings fältet är NULL i den första tabellen som visas i from-satsen (den vänstra tabellen).

    Om FROM-satsen exempelvis är:

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

    Du kan lägga till följande WHERE-sats:

    WHERE Products.ID IS NULL

  10. Skriv ett semikolon (;) i slutet av WHERE-satsen för att ange slutet av unions frågan.

  11. Klicka på Kör i gruppen Resultat på fliken Design.

Kors kopplingar

Kors kopplingar skiljer sig från inre och yttre kopplingar som inte uttryckligen visas i Access. I en kors koppling kombineras varje rad från en tabell med varje rad från en annan tabell, vilket ger upphov till en produkten cartesian produkt. När du kör en fråga som innehåller tabeller som inte uttryckligen är kopplade till en kors produkt blir resultatet. Kors kopplingar är vanligt vis oavsiktliga, men det finns fall där de kan vara användbara.

Varför ska jag använda en kors koppling?

Om du vill undersöka varje möjlig kombination av rader mellan två tabeller eller frågor kan du använda en kors koppling. Anta till exempel att ditt företag har haft ett Spectacular år och du funderar på att ge rabatt till dina kunder. Du kan bygga en fråga som summerar varje kunds inköp, skapa en liten tabell med flera möjliga rabatt procent och kombinera de två i en annan fråga som utför en kors koppling. Du får en fråga som visar en uppsättning hypotetiska rabatter för varje kund.

Hur använder jag en kors koppling?

En kors koppling skapas när du lägger till tabeller eller frågor i frågan och skapar inte heller minst en explicit koppling för varje tabell eller fråga. Access kombinerar varje rad från varje tabell eller fråga som inte uttryckligen är kopplad till någon annan tabell eller fråga till varannan rad i resultatet. Överväg rabatt scenariot från föregående stycke. Anta att du har 91-kunder och att du vill titta på fem möjliga rabatt procent satser. Din kors koppling ger 455 rader (produkten av 91 och 5).

Som du kan föreställa dig kan oavsiktliga kors kopplingar skapa ett stort antal rader i frågeresultatet. Dessutom är de här resultaten vanligt vis meningslösa, eftersom om du inte tänker kombinera varje rad med varannan rad är de flesta kombinerade rader som visas i resultatet inte begripligt. Slutligen kan frågor som använder oavsiktliga kors kopplingar ta lång tid att köra.

Oavsiktlig korskoppling i designvyn

1. de uppringda fälten ska vara kopplade till varandra.

Oavsiktlig korsprodukt

1. Observera det stora antalet poster.

Det korrigerade frågeresultatet

1. Observera att antalet poster är mycket mindre.

Överst på sidan

Ansluta till tabeller baserat på olikheter i fält värden

Kopplingar behöver inte baseras på de kopplade fältens motsvarighet . En koppling kan baseras på valfri jämförelse Operator, till exempel större än (>), mindre än (<) eller inte lika med (<>). Kopplingar som inte är baserade på likhet kallas för olika kopplingar.

Om du vill kombinera raderna med två data källor baserat på fält värden som inte är lika kan du använda en lika koppling. Vanligt vis baseras olika kopplingar på antingen den större än (>), mindre än (<), större än eller lika med (> =) eller mindre än eller lika med (< =) jämförelse operatorer. Olika kopplingar som baseras på den icke lika stora (<>) operator kan returnera nästan lika många rader som kors kopplingar, och resultatet kan vara svårt att tolka.

Hur använder jag en samkopplad koppling?

Det går inte att använda en lika koppling i designvyn. Om du vill använda dem måste du göra det i SQL-vyn. Du kan dock skapa en koppling i designvyn, växla till SQL-vyn, hitta likheter (=) och ändra den till den Operator du vill använda. När du har gjort det kan du bara öppna frågan i designvyn igen om du först ändrar jämförelse operatorn till lika med (=) i SQL-vyn.

Ta bort en koppling

Om Access automatiskt skapar en koppling som du inte vill använda, eller om du skapar en koppling av misstag, till exempel en koppling mellan två fält som har olika typer av data, kan du ta bort kopplingen.

  1. Klicka på den koppling som du vill ta bort i frågerutnätet.

  2. Tryck på Delete.

- eller -

  • I frågerutnätet högerklickar du på den koppling du vill ta bort och klickar sedan på ta bort.

Överst på sidan

Mer information finns i

Lägga till poster i en tabell med hjälp av en tilläggsfråga

Kombinera resultaten från flera urvals frågor med en unions fråga

Skapa en fråga som baseras på flera tabeller

Skapa, redigera eller ta bort en relation

Utöka dina Office-kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×