Kombinerer poster fra to tabeller, når der matchende værdier i et fælles felt.
Syntaks
FROM tabel1 INNER JOIN tabel2 ON tabel1.felt1sammenligningsoperatortabel2.felt2
Handlingen INNER JOIN består af følgende dele:
Del |
Beskrivelse |
tabel1, tabel2 |
Navnene på de tabeller, som posterne skal kombineres fra. |
felt1, felt2 |
Navnene på de felter, der skal joinforbindes. Hvis de ikke er numeriske, skal de have samme datatype og indeholde den samme slags data, men de behøver ikke have samme navn. |
sammenligningsoperator |
En relationel sammenligningsoperator: "=," "<," ">," "<=," ">=" eller "<>." |
Bemærkninger
Du kan bruge en INNER JOIN-handling i en hvilken som helst FROM-delsætning. Dette er den mest almindelige type joinforbindelse. Indre joinforbindelser kombinerer poster fra to tabeller, når der matchende værdier i et felt, som er fælles for begge tabeller.
Du kan bruge INNER JOIN sammen med tabellerne Afdelinger og Medarbejdere til at vælge alle medarbejdere i hver afdeling. Hvis du derimod vil vælge alle afdelinger (selvom nogle ikke har fået tildelt medarbejdere) eller alle medarbejdere (selvom nogle ikke er blevet tildelt til en afdeling), kan du bruge en LEFT JOIN-handling eller RIGHT JOIN-handling til at oprette en ydre joinforbindelse.
Hvis du forsøger at sammenføje felter, der indeholder Notat- eller OLE-objekt-data, opstår der en fejl.
Du kan forbinde to numeriske felter af lignende typer. Du kan f.eks. joinforbinde på felter af typen Autonummerering og Lang, fordi de er som typer. Du kan dog ikke forbinde felter af typerne Enkelt og Dobbelt.
I følgende eksempel vises det, hvordan du kan forbinde tabellerne Kategorier og Produkter i feltet CategoryID:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
I det forrige eksempel er CategoryID det forbundne felt, men det er ikke medtaget i forespørgselsresultaterne, fordi det ikke er medtaget i SELECT-sætningen. For at medtage det forbundne felt skal du medtage feltnavnet i SELECT-sætningen – i dette tilfælde Categories.CategoryID.
Du kan også sammenkæde flere ON-delsætninger i en JOIN-sætning ved hjælp af følgende syntaks:
SELECT felter
FROM tabel1 INNER JOIN tabel2 ON tabel1.felt1sammenligningsoperatortabel2.felt1 AND ON tabel1.felt2sammenligningsoperatortabel2.felt2) OR ON tabel1.felt3sammenligningsoperatortabel2.felt3)];Du kan også indlejre JOIN-sætninger med følgende syntaks:
SELECT felter
FROM tabel1 INNER JOIN (tabel2 INNER JOIN [( ]tabel3 [INNER JOIN [( ]tablex [INNER JOIN ...)] ON tabel3.felt3sammenligningsoperatortabelx.feltx)] ON tabel2.felt2sammenligningsoperatortabel3.felt3) ON tabel1.felt1sammenligningsoperatorfelt2.felt2;En LEFT JOIN eller en RIGHT JOIN kan indlejres i en INNER JOIN, men en INNER JOIN kan ikke indlejres i en LEFT JOIN eller en RIGHT JOIN.