INNER JOIN, bewerking
Van toepassing op
Combineert records van twee tabellen als er overeenkomende waarden in een gemeenschappelijk veld staan.
Syntaxis
FROM table1 INNER JOIN table2 ON table1. field1compopr 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. Als ze niet numeriek zijn, moeten de velden van hetzelfde gegevenstype zijn en hetzelfde soort gegevens bevatten, maar ze hoeven niet dezelfde naam te hebben. |
| compopr | Elke 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 wilt selecteren (zelfs als aan sommige geen werknemers zijn toegewezen) of alle werknemers (zelfs als sommige niet zijn toegewezen aan een afdeling), 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 op in de SELECT-instructie, Categories.CategoryIDin dit geval .
U kunt ook verschillende ON-componenten in een JOIN-instructie opnemen aan de hand van de volgende syntaxis:
SELECT-velden
FROM table1 INNER JOIN table2
OP tabel1. field1compoprtable2. veld1 EN
OP tabel1. field2compoprtable2. veld2) OF
OP tabel1. field3compoprtable2. field3)];
U kunt ook JOIN-instructies nesten met behulp van de volgende syntaxis:
SELECT-velden
FROM table1 INNER JOIN
(table2 INNER JOIN [( ]table3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
OP tabel3. field3compoprtablex. fieldx)]
OP tabel2. field2compoprtable3. veld3)
OP tabel1. field1compoprtable2. 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.