Combineert records van twee tabellen als er overeenkomende waarden in een gemeenschappelijk veld staan.
Syntaxis
FROM tabel1 INNER JOIN tabel2 ON tabel1.veld1vglopr tabel2.veld2
De INNER JOIN-bewerking bevat de volgende onderdelen:
Onderdeel |
Beschrijving |
tabel1, tabel2 |
De namen van de tabellen waaruit records worden gecombineerd. |
field1, field2 |
De namen van de velden die worden samengevoegd. Niet-numerieke velden moeten hetzelfde gegevenstype hebben en dezelfde soort gegevens bevatten, maar de naam ervan hoeft niet hetzelfde te zijn. |
compopr |
Een relationele vergelijkingsoperator: "=," "<," ">," "<=," ">=," of "<>." |
Opmerkingen
U kunt een INNER JOIN-bewerking gebruiken in een willekeurig FROM-component. Dit is het meest voorkomende join-type. Inner joins combineren records van twee tabellen als er overeenkomende waarden staan in een veld dat gemeenschappelijk is voor beide tabellen.
U kunt INNER JOIN gebruiken voor de tabellen Afdelingen en Werknemers om alle werknemers van elke afdeling te selecteren. Als u daarentegen alle afdelingen (zelfs als er aan sommige geen werknemers zijn toegewezen) of alle werknemers (zelfs als sommige niet aan een afdeling zijn toegewezen) wilt selecteren, kunt u een LEFT JOIN- of RIGHT JOIN-bewerking gebruiken om een outer join te maken.
Als u velden die Memo- of OLE-Object-gegevens wilt samenvoegen, treedt er een fout op.
U kunt alle willekeurige twee numerieke velden van hetzelfde type koppelen. U kunt bijvoorbeeld koppelen op basis van AutoNumber- en Long-velden omdat zij van hetzelfde type zijn. U kunt echter geen enkele en dubbele veldtypen koppelen.
Het volgende voorbeeld laat zien hoe u de tabellen Categorieën en Producten kunt samenvoegen aan de hand van het veld CategorieID:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
In het voorgaande voorbeeld is het gekoppelde veld CategorieID, maar het is niet opgenomen in de queryuitvoer omdat het niet is opgenomen in de SELECT-instructie. Als u het gekoppelde veld wilt opnemen, neemt u de veldnaam in de SELECT-instructie op — in dit geval Categories.CategoryID.
U kunt ook verschillende ON-componenten in een JOIN-instructie opnemen aan de hand van de volgende syntaxis:
SELECT velden
FROM tabel1 INNER JOIN tabel2 ON tabel1.veld1compoprtabel2.veld1 AND ON tabel1.veld2compoprveld2.veld2) OR ON tabel1.veld3compoprtabel2.veld3)];U kunt ook JOIN-instructies nesten met behulp van de volgende syntaxis:
SELECT velden
FROM tabel1 INNER JOIN (tabel2 INNER JOIN [( ]tabel3 [INNER JOIN [( ]tabelx [INNER JOIN ...)] ON tabel3.veld3vgloprtabelx.veldx)] ON tabel2.veld2vgloprtabel3.veld3) ON tabel1.veld1vgloprtabel2.veld2;Een LEFT JOIN of een RIGHT JOIN kan mogelijk worden genest in een INNER JOIN, maar een INNER JOIN kan mogelijk niet worden genest binnen een LEFT JOIN of een RIGHT JOIN.