De werking van INNER JOIN
Begrijp INNER JOIN als een gefilterd Cartesisch product, schrijf joinvoorwaarden en lees EXPLAIN-uitvoer voor joins.
De werking van INNER JOIN is een gratis SQL Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject SQL Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus SQL Academy bevat in totaal 4 lessen.
De INNER JOIN
INNER JOIN retourneert alleen rijen met een overeenkomend paar in BEIDE tabellen, op basis van de ON-voorwaarde.
Eenvoudige INNER JOIN
Haal elke bestelling met de bijbehorende gebruiker op:
SELECT o.id, o.total, u.email
FROM orders o
INNER JOIN users u ON u.id = o.user_id;
-- INNER is the default — you can also write:
SELECT o.id, o.total, u.email
FROM orders o
JOIN users u ON u.id = o.user_id;Meerdere voorwaarden in ON
De ON-component is een gewone booleaanse expressie:
SELECT *
FROM events e
JOIN sessions s
ON s.user_id = e.user_id
AND e.created_at BETWEEN s.start_at AND s.end_at;Aliassen
Aliassen maken query's korter en voorkomen onduidelijke verwijzingen naar kolommen:
SELECT o.id, u.email
FROM orders AS o -- AS is optional
JOIN users AS u ON u.id = o.user_id;Drie of meer tabellen samenvoegen
Koppel joins aan elkaar door de JOIN-component te herhalen:
SELECT o.id, u.email, p.name AS product
FROM orders o
JOIN users u ON u.id = o.user_id
JOIN products p ON p.id = o.product_id;USING (column)
Als de kolom waarop je joint in beide tabellen dezelfde naam heeft, kun je USING schrijven — daarmee wordt de kolom in de uitvoer niet gedupliceerd:
SELECT o.id, total, email
FROM orders
JOIN users USING (user_id); -- requires both tables to have user_idNATURAL JOIN
Joint op elke kolom met dezelfde naam — let op: dit is kwetsbaar wanneer er kolommen worden toegevoegd.
-- Avoid in production code:
SELECT * FROM orders NATURAL JOIN users;JOIN-voorwaarden tegenover WHERE
Bij INNER JOIN is een voorwaarde in ON logisch gelijkwaardig aan dezelfde voorwaarde in WHERE. Conventie: filters die de JOIN-relatie definiëren komen in ON; filters voor rijen komen in WHERE.
SELECT * FROM orders o
JOIN users u ON u.id = o.user_id -- join condition
WHERE u.country = 'US'; -- row filterVermenigvuldiging van resultaten
Als een rij in A overeenkomt met drie rijen in B, bevat het resultaat drie rijen. Dat is normaal — maar verrassend als je het vergeet. Gebruik je een aggregatie? Wees dan voorzichtig met COUNT(*).
Vooruitblik op self-joins
Je kunt een tabel met zichzelf samenvoegen door elke instantie een andere alias te geven:
SELECT e.full_name AS employee, m.full_name AS manager
FROM employees e
JOIN employees m ON m.id = e.manager_id;Prestaties van INNER JOIN
Inner joins zijn snel wanneer:
- De kolom waarop je joint is geïndexeerd, vooral aan de FK-kant
- Eén tabel klein is, voor een hash-join, of beide tabellen gesorteerd zijn, voor een merge-join
- Je vroeg filtert, zodat het aantal tussenliggende rijen klein blijft
Samenvatting
INNER JOIN behoudt alleen overeenkomende paren.
- JOIN betekent standaard INNER JOIN
- ON drukt de joinvoorwaarde uit
- Aliassen houden query's kort
- Kolommen waarop je joint moeten geïndexeerd zijn
Korte controle
Wat retourneert orders INNER JOIN users ON users.id = orders.user_id wanneer een bestelling geen overeenkomende gebruiker heeft, dus een wees is?
Leer SQL met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 46
- Lessen
- 183
Veelgestelde vragen
Is de les “De werking van INNER JOIN” gratis?
Ja — de volledige tekst van “De werking van INNER JOIN” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus SQL Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus SQL Academy bevat in totaal 4 lessen.
Wat leer ik in “De werking van INNER JOIN”?
Begrijp INNER JOIN als een gefilterd Cartesisch product, schrijf joinvoorwaarden en lees EXPLAIN-uitvoer voor joins. Je oefent met SQL Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met SQL Academy te beginnen?
Ervaring vooraf is niet nodig. SQL Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “De werking van INNER JOIN”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over SQL Academy?
Ja. Elke les over SQL Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Waarom joins (herhaling van het relationele model)
- De werking van INNER JOIN
- LEFT/RIGHT JOIN en OUTER joins
- Self-joins en aliassen