Ja, Oracle ondersteunt het commando `INNER JOIN`. Het wordt net als in andere SQL-databases gebruikt om rijen uit twee of meer tabellen te combineren op basis van een gerelateerde kolom ertussen. Alleen rijen met overeenkomende waarden in beide tabellen worden opgenomen in de resultatenset.
Hier is de basissyntaxis:
```sql
SELECTEER kolomnaam(en)
VAN tabel1
INNER JOIN tabel2 ON tabel1.kolomnaam =tabel2.kolomnaam;
```
Je kunt ook de oudere, uitgebreidere `JOIN`-syntaxis gebruiken, die functioneel equivalent is aan `INNER JOIN`:
```sql
SELECTEER kolomnaam(en)
VAN tafel1, tafel2
WAAR tabel1.kolomnaam =tabel2.kolomnaam;
```
Hoewel dit werkt, heeft de `INNER JOIN`-syntaxis de voorkeur vanwege de leesbaarheid en duidelijkheid, vooral bij complexe query's waarbij meerdere joins betrokken zijn. Het trefwoord `JOIN` wordt doorgaans vermeden in moderne SQL-coderingspraktijken.
Voorbeeld:
Stel dat u twee tabellen heeft:'werknemers' en 'afdelingen'.
werknemerstabel:
| medewerker_id | naam | afdeling_id |
|------------|-----------|---------------|
| 1 | John Doe | 10 |
| 2 | Jane Doe | 20 |
| 3 | David Lee | 10 |
afdelingentabel:
| afdeling_id | naam |
|------------|------------|
| 10 | Verkoop |
| 20 | Marktwerking |
| 30 | Techniek |
Een 'INNER JOIN'-query om de namen van werknemers en hun afdelingsnamen op te halen zou er als volgt uitzien:
```sql
SELECT medewerkers.naam, afdelingen.naam
VAN medewerkers
INNER JOIN afdelingen ON medewerkers.department_id =afdelingen.department_id;
```
Dit zou terugkeren:
| naam | naam |
|-----------|------------|
| John Doe | Verkoop |
| Jane Doe | Marktwerking |
| David Lee | Verkoop |
Alleen medewerkers die in beide tabellen een overeenkomende `afdeling_id` hebben, worden meegenomen in het resultaat. Werknemers die niet zijn toegewezen aan een afdeling in de tabel 'afdelingen', of afdelingen zonder medewerkers in de tabel 'werknemers', worden niet opgenomen. |