Kombinerer poster fra to tabeller når det er samsvarende verdier i et felles felt.
Syntaks
FROM tabell1 INNER JOIN tabell2 ON tabell1.felt1compopr 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. |
smlopr |
En relasjonssammenligningsoperator: "=," "<," ">," "<=," ">=," eller "<>." |
Kommentarer
Du kan bruke en INNER JOIN-operasjon i enhver FROM-setning. Dette er den vanligste sammenføyningstypen. Indre sammenføyninger kombinerer poster fra to tabeller når det er samsvarende verdier i et felles felt.
Du kan bruke INNER JOIN med tabellene Avdeling og Ansatte for å velge alle ansatte i hver avdeling. Hvis du derimot ønsker å velge alle avdelinger (selv om noen ikke har ansatte tilknyttet seg) eller alle ansatte (selv om noen ikke er tilknyttet en avdeling), kan du bruke en LEFT JOIN- eller RIGHT JOIN-operasjon for å opprette en ytre kobling.
Hvis du prøver å sammenføye felt som inneholder objektdataene Notat eller OLE, oppstår det en feil.
Du kan sammenføye to numeriske felt av samme type. Du kan for eksempel sammenføye Autonummerering- og Lang-felter, da de er av samme type. Du kan imidlertid ikke sammenføye enkle og doble felttyper.
Følgende eksempel viser hvordan du kan sammenføye tabellene Kategorier og Produkter på CategoryID-feltet.
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
I forrige eksempel er CategoryID det sammenføyde feltet, men det er ikke inkludert i spørringsresultatet fordi det ikke er inkludert i uttrykket SELECT. Hvis du vil inkludere det sammenføyde feltet, skriver du inn feltnavnet i uttrykket SELECT, i dette tilfellet Categories.CategoryID.
Du kan også sammenføye flere ON-setninger i et JOIN-uttrykk, ved bruk av følgende syntaks:
SELECT felt
FROM tabell1 INNER JOIN tabell2 ON tabell1.felt1compoprtabell2.felt1 AND ON tabell1.felt2compoprtabell2.felt2) OR ON tabell1.felt3compoprtabell2.felt3)];Du kan også neste JOIN-uttrykk ved bruk av følgende syntaks:
SELECT felt
FROM tabell1 INNER JOIN (tabell2 INNER JOIN [( ]tabell3 [INNER JOIN [( ]tabellx [INNER JOIN ...)] ON tabell3.felt3compoprtabellx.feltx)] ON tabell2.felt2compoprtabell3.felt3) ON tabell1.felt1compoprtabell2.felt2;En LEFT JOIN eller en RIGHT JOIN kan nestes i en INNER JOIN, men en INNER JOIN kan ikke nestes i en LEFT JOIN eller en RIGHT JOIN.