Kombinerar poster från två tabeller när det finns matchande värden i ett gemensamt fält.
Syntax
FROM tabell1 INNER JOIN tabell2 ON tabell1.fält1operator 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. |
operator |
En jämförelseoperator: "=," "<," ">," "<=," ">=" eller "<>." |
Kommentarer
Det går att använda en INNER JOIN-åtgärd i alla FROM-satser. Det här är den vanligaste typen av koppling. Inre kopplingar kombinerar poster från två tabeller när det finns matchande värden i ett fält som är gemensamt för de båda tabellerna.
Du kan använda INNER JOIN med tabeller för avdelningar och anställda för att markera alla anställda i varje avdelning. Om du däremot vill markera alla avdelningar (även om vissa inte har tilldelats några anställda) eller alla anställda (även om vissa inte har tilldelats någon avdelning) använder du en åtgärd av typen LEFT JOIN eller RIGHT JOIN för att skapa en yttre koppling.
Om du försöker koppla fält som innehåller datatypen Memo eller OLE-objekt uppstår ett fel.
Du kan koppla två numeriska fält av liknande typer. Du kan till exempel koppla fälten Räknare och Lång eftersom de är som typer. Du kan däremot inte koppla typerna Enkel och Dubbel för fält.
I följande exempel visas hur du kan koppla tabellerna Kategorier och Produkter på fältet Kategori-ID:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
I föregående exempel är Kategori-ID det kopplade fältet, men tas inte med i frågeresultatet eftersom det inte ingår i SELECT-instruktionen. Om du vill ta med det kopplade fältet inkluderar du fältnamnet i SELECT-instruktionen – i det här fallet Categories.CategoryID.
Du kan också koppla flera ON-satser i ett JOIN-uttryck med hjälp av följande syntax:
SELECT fält
FROM table1 INNER JOIN tabell2 ON tabell1.fält1operatortabell2.fält1 AND ON tabell1.fält2operatortabell2.fält2) OR ON tabell1.fält3operatortabell2.fält3)];Du kan även kapsla in JOIN-uttryck med följande syntax:
SELECT fält
FROM tabell1 INNER JOIN (tabell2 INNER JOIN [( ]tabell3 [INNER JOIN [( ]tabellx [INNER JOIN ...)] ON tabell3.fält3jämförelseoperatortabellx.fältx)] ON tabell2.fält2jämförelseoperatortabell3.fält3) ON tabell1.fält1jämförelseoperatortabell2.fält2;En LEFT JOIN eller en RIGHT JOIN kan kapslas i en INNER JOIN men en INNER JOIN kan inte kapslas i en LEFT JOIN eller en RIGHT JOIN.