SQL JOIN uitgelegd met voorbeelden (Inner, Left, Right, Full)

SQL joins explained with examples: inner, left, right, full, cross and self joins
  1. Home
  2. Blog
  3. Databases & SQL

Databases & SQL

SQL JOIN uitgelegd met voorbeelden (Inner, Left, Right, Full)

Leer INNER, LEFT, RIGHT, FULL, CROSS en SELF joins met twee kleine tabellen, duidelijke queries en de exacte resultaten.

Door Stack QuoraBijgewerkt op 29 okt 20268 min leestijd
SQLSQL JOIN uitgelegdmet voorbeeldenstackquora.com

Belangrijkste punten

  • INNER JOIN: alleen rijen die in beide tabellen overeenkomen.
  • LEFT JOIN: alle linkse rijen, plus de overeenkomsten (anders NULL).
  • RIGHT JOIN: alle rechtse rijen, plus de overeenkomsten.
  • FULL JOIN: alle rijen van beide tabellen, gekoppeld waar mogelijk.
  • Join op sleutels, gebruik tabelaliassen en indexeer de join-kolommen.

Echte databases slaan niet alles in één tabel op. Klanten staan in de ene tabel en bestellingen in een andere. Om “welke klanten hebben deze maand besteld?” te beantwoorden, moet je ze combineren, en dat doen SQL joins.

Deze gids is praktisch. Joins verwarren beginners omdat dezelfde twee tabellen verschillende resultaten geven per jointype. Met kleine, concrete data wordt het eenvoudig.

SQL JOIN uitgelegd: voorbeeldtabellen

customers

id name
1 Asha
2 Ben
3 Chitra

orders

id customer_id total
101 1 250
102 1 120
103 2 90
104 9 40

Chitra heeft geen bestellingen, en bestelling 104 verwijst naar een klant (9) die niet bestaat. Deze twee randgevallen laten het verschil tussen de jointypes zien.

INNER JOIN

INNER JOIN geeft alleen rijen terug waarvan de voorwaarde in beide tabellen waar is. Rijen zonder tegenhanger vallen weg.

SELECT c.name, o.id AS order_id, o.total
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id;

Resultaat: Asha (101), Asha (102), Ben (103). Chitra en bestelling 104 ontbreken. Gebruik dit als alleen gerelateerde data telt, zoals bestellingen met klantgegevens. Alleen JOIN schrijven betekent INNER JOIN.

LEFT JOIN

LEFT JOIN behoudt alle rijen van de linkertabel en voegt overeenkomende rijen van rechts toe. Zonder overeenkomst zijn de rechterkolommen NULL.

SELECT c.name, o.id AS order_id, o.total
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id;

Resultaat: Asha (101), Asha (102), Ben (103), Chitra (NULL, NULL). Nu verschijnt Chitra.

Snelle tip: om klanten te vinden die nooit hebben besteld, filter je op NULL aan de rechterkant: WHERE o.id IS NULL geeft Chitra. Testers gebruiken dit om verweesde of ontbrekende records te vinden.

RIGHT JOIN en FULL JOIN

RIGHT JOIN is het spiegelbeeld van LEFT JOIN en behoudt alle rijen van de rechtertabel. De meeste mensen wisselen de tabelvolgorde om en gebruiken LEFT JOIN, omdat dat natuurlijker leest.

SELECT c.name, o.id AS order_id
FROM customers c
RIGHT JOIN orders o ON o.customer_id = c.id;

Het resultaat bevat bestelling 104 met klantnaam NULL. FULL (OUTER) JOIN geeft alle rijen van beide tabellen: Chitra zonder bestelling en bestelling 104 zonder klant.

SELECT c.name, o.id AS order_id
FROM customers c
FULL OUTER JOIN orders o ON o.customer_id = c.id;

PostgreSQL en SQL Server ondersteunen dit. MySQL niet; combineer LEFT JOIN en RIGHT JOIN met UNION. Voor meer uitleg heeft de PostgreSQL-handleiding een duidelijke join-tutorial.

Join Alleen linkse rijen Alleen rechtse rijen Overeenkomende rijen
INNER Nee Nee Ja
LEFT Ja Nee Ja
RIGHT Nee Ja Ja
FULL Ja Ja Ja

CROSS JOIN en SELF JOIN

CROSS JOIN koppelt elke rij van de ene tabel aan elke rij van de andere: drie klanten en vier bestellingen geven twaalf rijen. Het wordt zelden gebruikt, maar is handig om combinaties te genereren, zoals testdata voor elke maat en kleur.

SELECT c.name, o.id
FROM customers c
CROSS JOIN orders o;

SELF JOIN koppelt een tabel met zichzelf via aliassen, bijvoorbeeld om de manager van elke medewerker te vinden.

SELECT e.name AS employee, m.name AS manager
FROM employees e
LEFT JOIN employees m ON e.manager_id = m.id;

SQL JOIN: veelgemaakte fouten en prestatietips

  • De ON-clausule vergeten maakt per ongeluk een CROSS JOIN en laat het aantal rijen exploderen.
  • De rechtertabel filteren in WHERE na een LEFT JOIN maakt er een INNER JOIN van; zet de voorwaarde in ON.
  • Dubbelzinnige kolomnamen: zet de tabelalias voor kolommen.
  • Joinen op niet-unieke kolommen vermenigvuldigt rijen en blaast totalen op.
  • Indexeer join-kolommen, selecteer alleen de benodigde kolommen en onderzoek trage queries met EXPLAIN.

Waarom joins belangrijk zijn voor testers

QA-engineers gebruiken joins om te controleren of data uit de UI of API goed in de database terechtkomt en om verweesde records te vinden. Lees het samen met onze gids voor API-testen met Postman (Engels). Voor de basis zie de SQL-tutorial voor beginners (Engels) en voor nieuwe datastores vectordatabases (Engels). Om een database lokaal te draaien, zie onze Docker-tutorial (Engels).

Tot slot

SQL joins in één regel: INNER houdt alleen overeenkomsten, LEFT alles links, RIGHT alles rechts en FULL houdt alles. Oefen met twee kleine tabellen tot je het resultaat kunt voorspellen voordat je de query uitvoert; join daarna drie tabellen en combineer joins met GROUP BY.

Veelgestelde vragen

Wat is het verschil tussen INNER JOIN en LEFT JOIN?

INNER JOIN geeft alleen overeenkomende rijen uit beide tabellen. LEFT JOIN geeft alle rijen van de linkertabel en vult niet-overeenkomende rechterkolommen met NULL.

Welke SQL join is het snelst?

Geen enkel type is altijd het snelst. Prestaties hangen af van indexen, tabelgrootte en het uitvoeringsplan. Indexeer de join-kolommen en controleer het plan.

Ondersteunt MySQL FULL OUTER JOIN?

Nee. Combineer in MySQL LEFT JOIN en RIGHT JOIN met UNION voor hetzelfde resultaat.

Waarvoor wordt een SELF JOIN gebruikt?

Een SELF JOIN vergelijkt rijen binnen dezelfde tabel, bijvoorbeeld om de manager van elke medewerker te vinden in één employees-tabel.

Waarom geeft mijn join dubbele rijen terug?

Dubbele rijen ontstaan als de join-kolom in een van de tabellen niet uniek is. Controleer je sleutels of aggregeer de data vóór de join.

Blijf leren (Engelse artikelen)

Werk samen met Stack Quora

Hulp nodig bij testen, WordPress of SEO?

Wij helpen teams betere software op te leveren en hun sites te laten groeien. Vertel waar je aan werkt en we stellen de volgende stap voor.

Blijf lezen

Meer handleidingen over testen, AI en moderne ontwikkeling

Genoten van dit artikel? Kies een onderwerp en ga direct naar onze nieuwste tutorials.