SQL Academy · Les

De werking van INNER JOIN

Begrijp INNER JOIN als een gefilterd Cartesisch product, schrijf joinvoorwaarden en lees EXPLAIN-uitvoer voor joins.

Les 2 van 413 stappen

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_id

NATURAL 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 filter

Vermenigvuldiging 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?

Gratis beginnen

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

  1. Waarom joins (herhaling van het relationele model)
  2. De werking van INNER JOIN
  3. LEFT/RIGHT JOIN en OUTER joins
  4. Self-joins en aliassen
← Terug naar SQL Academy