Ga naar hoofdinhoud

SQL INNER JOIN vs. OUTER JOIN: Belangrijkste verschillen

Begrijp SQL INNER JOIN vs. OUTER JOIN met voorbeelden en visuele hulpmiddelen om je databasemanagementvaardigheden te verbeteren.
Bijgewerkt 1 jun 2026  · 4 min lezen

In deze tutorial leg ik het verschil uit tussen SQL INNER JOIN en OUTER JOIN met voorbeelden. Als je dit onder de knie hebt, wil je misschien onze cursus Joining Data in SQL volgen, die andere interessante joins behandelt, zoals SELF JOIN en CROSS JOIN, en ook grotere concepten zoals verzamelingenleer.

Kort antwoord

INNER JOIN retourneert alleen de overeenkomende rijen tussen tabellen op basis van een gemeenschappelijke kolom en sluit niet-overeenkomende rijen uit. De query hieronder laat bijvoorbeeld bestellingen met klantgegevens zien alleen wanneer er een overeenkomst is.

-- Inner Join: Returns only matching rows from both tables
SELECT o.OrderID, c.CustomerName
FROM Orders o
INNER JOIN Customers c ON o.CustomerID = c.CustomerID;

OUTER JOIN omvat zowel overeenkomende rijen als niet-overeenkomende rijen uit één of beide tabellen. De query hieronder retourneert alle klanten, inclusief degenen zonder bestellingen.

-- Left Outer Join: Returns all rows from Customers and matching rows from Orders
SELECT c.CustomerName, o.OrderID
FROM Customers c
LEFT JOIN Orders o ON c.CustomerID = o.CustomerID;

Van dichtbij: SQL INNER JOIN en OUTER JOIN

Laten we nu SQL INNER JOIN en OUTER JOIN van dichterbij bekijken, één voor één. Terwijl we elk bekijken, neem de volgende twee tabellen in gedachten:

Voorbeeld van employees-tabel.

Voorbeeld van employees-tabel. Afbeelding door auteur.

Voorbeeld van departments-tabel.

Voorbeeld van departments-tabel. Afbeelding door auteur.

Hoe INNER JOIN werkt

Een INNER JOIN haalt alleen de rijen op met een overeenkomst in beide tabellen op basis van de opgegeven voorwaarde.

De volgende query selecteert employee_id, demployee_name, department_name en salary en retourneert vervolgens de rijen waar department_id bestaat.

-- Example: Get employees with matching departments
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
INNER JOIN departments
-- Returns only employees assigned to a department
ON employees.department_id = departments.department_id;

Voorbeeld van een samengevoegde tabel met SQL INNER JOIN.

Voorbeeld van een samengevoegde tabel met SQL INNER JOIN. Afbeelding door auteur.

Hoe OUTER JOIN werkt

De OUTER JOIN neemt niet-overeenkomende rijen op uit één of beide tabellen, afhankelijk van het type OUTER JOIN dat wordt gebruikt.

LEFT OUTER JOIN (LEFT JOIN)

De LEFT OUTER JOIN retourneert alle records uit de linkertabel en de overeenkomende records uit de rechtertabel. Als er geen overeenkomst is, worden NULL-waarden geretourneerd voor kolommen uit de rechtertabel.

Het volgende voorbeeld haalt alle records op uit de tabel employees, ook waar er geen overeenkomende records zijn. Ontbrekende department_name voor medewerkers wordt geretourneerd als NULL.

-- Get all employees, even those without a department
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.department_id;

Voorbeeld van een tabel gekoppeld met SQL left outer join

Voorbeeld van een tabel gekoppeld met SQL left outer join. Afbeelding door auteur.

LEFT JOIN en LEFT OUTER JOIN worden in SQL door elkaar gebruikt, aangezien beide queries alle rijen uit de linkertabel en de overeenkomende rijen uit de rechtertabel ophalen.

RIGHT OUTER JOIN (RIGHT JOIN)

De RIGHT OUTER JOIN retourneert alle records uit de rechtertabel en de overeenkomende records uit de linkertabel. Niet-overeenkomende rijen in de linkertabel leveren NULL op.

De query hieronder retourneert alle records uit de tabel departments, ook waar er geen overeenkomende medewerkers zijn.

-- Get all departments, even those without employees
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
RIGHT JOIN departments
ON employees.department_id = departments.department_id;

Voorbeeld van een tabel gekoppeld met SQL Right outer join.

Voorbeeld van een tabel gekoppeld met SQL Right outer join. Afbeelding door auteur.

FULL OUTER JOIN

De FULL OUTER JOIN combineert resultaten van zowel left als right outer joins. Het retourneert alle records uit beide tabellen en vult NULL in waar geen overeenkomst bestaat.

De query hieronder retourneert alle records uit de tabellen employees en departments, ook met niet-overeenkomende rijen.

-- Combine all employees and departments
SELECT employees.employee_id, employees.employee_name, departments.department_name, employees.salary
FROM employees
FULL JOIN departments
ON employees.department_id = departments.department_id;

Voorbeeld van een tabel gekoppeld met SQL Full outer join.

Voorbeeld van een tabel gekoppeld met SQL Full outer join. Afbeelding door auteur.

INNER JOIN vs. OUTER JOIN: Belangrijkste verschillen

INNER JOIN en OUTER JOIN verschillen fundamenteel in hoe ze niet-overeenkomende rijen behandelen bij het samenvoegen van tabellen. Deze verschillen begrijpen is belangrijk om het juiste jointype voor je databasequeries te kiezen. Laten we ze vergelijken.

Wat INNER JOIN retourneert

INNER JOIN retourneert alleen de rijen met overeenkomende waarden in beide tabellen. Dit type join gebruik je wanneer je gegevens in beide datasets nodig hebt.

De volgende query haalt records op uit employees met overeenkomende rijen uit de tabel departments.

-- Example: Get employees with matching departments
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
INNER JOIN departments
-- Returns only employees assigned to a department
ON employees.department_id = departments.department_id;

Voorbeeld van een tabel gekoppeld met SQL Inner join.

Voorbeeld van een tabel gekoppeld met SQL INNER JOIN. Afbeelding door auteur.

Wat OUTER JOIN retourneert

OUTER JOIN omvat niet-overeenkomende rijen uit één of beide tabellen, afhankelijk van het type OUTER JOIN. Zo retourneert de LEFT OUTER JOIN alle rijen uit de linkertabel en de overeenkomende rijen uit de rechtertabel. Niet-overeenkomende rijen uit de rechtertabel krijgen NULL-waarden.

De volgende query haalt medewerkersrecords op, ook van degenen zonder afdeling.

-- Get all employees, even those without a department
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.department_id;

Voorbeeld van gegevens opgehaald met SQL Left outer join.

Voorbeeld van gegevens opgehaald met SQL LEFT OUTER JOIN. Afbeelding door auteur.

Wanneer gebruik je SQL INNER JOIN en OUTER JOIN

INNER JOIN en OUTER JOIN verschillen ook in hun praktische gebruiksscenario’s bij het ophalen van gegevens.

Wanneer gebruik je INNER JOIN

INNER JOIN is het meest effectief wanneer je alleen de overlappende gegevens uit twee tabellen nodig hebt. Je kunt bijvoorbeeld INNER JOIN gebruiken bij de analyse van verkoopgegevens om producten te vinden die verkocht zijn, zoals wanneer zowel product- als verkooptabellen overeenkomende items hebben.

Wanneer gebruik je OUTER JOIN

OUTER JOIN is geschikt wanneer je een volledige dataset wilt retourneren, inclusief niet-overeenkomende rijen. Bijvoorbeeld bij het maken van een rapport met alle medewerkers, inclusief degenen zonder afdelingsindeling, of alle afdelingen, inclusief die zonder medewerkers.

Conclusie

Het verschil tussen INNER JOIN en OUTER JOIN begrijpen is belangrijk voor het schrijven van efficiënte queries. Deze technieken leren helpt ook bij het optimaliseren van queries voor snellere gegevensopvraging. Blijf oefenen om meer vaardigheden in databasemanagement op te doen.

Ik raad je aan om onze carrièreroute Associate Data Analyst in SQL te proberen om een goede data-analist te worden. Onze cursus Reporting in SQL helpt je ook om bedreven te worden in het bouwen van complexe rapporten en dashboards voor effectieve datavisualisatie. Bereid je je voor op een sollicitatiegesprek waarin je je SQL-vaardigheden moet laten zien? Bekijk dan onze blog, 20 Top SQL Joins Interview Questions, om je goed voor te bereiden.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
\n
\n
\n
\n
Technical writer voor data science met praktische ervaring in data-analyse, business intelligence en data science. Ik schrijf praktische, op de industrie gerichte content over SQL, Python, Power BI, Databricks en data engineering, gebaseerd op analytisch werk in de echte wereld. Mijn schrijfwerk slaat een brug tussen technische diepgang en zakelijke impact, en helpt professionals om data om te zetten in onderbouwde beslissingen.
\n
\n
\n
\n

SQL INNER JOIN en OUTER JOIN: veelgestelde vragen

Wat is het verschil tussen INNER JOIN en OUTER JOIN in SQL?

INNER JOIN retourneert alleen overeenkomende rijen uit beide tabellen, terwijl OUTER JOIN ook niet-overeenkomende rijen opneemt, waarbij NULL de gaten opvult wanneer er geen overeenkomende gegevens zijn.

Wanneer moet ik een INNER JOIN gebruiken in SQL?

Gebruik een INNER JOIN wanneer je alleen de rijen wilt ophalen met overeenkomende waarden in beide tabellen.

Wat zijn de OUTER JOIN-typen in SQL?

De OUTER JOIN-typen zijn LEFT OUTER JOIN, RIGHT OUTER JOIN en FULL OUTER JOIN.

Hoe werkt een LEFT OUTER JOIN in SQL?

Een left outer join retourneert alle rijen uit de linkertabel, de overeenkomende rijen uit de rechtertabel en de niet-overeenkomende rijen uit de linkertabel.

Wat is een FULL OUTER JOIN in SQL?

Een FULL OUTER JOIN retourneert alle rijen uit beide tabellen, inclusief niet-overeenkomende rijen uit elke tabel.

Onderwerpen

Leer SQL met DataCamp

Cursus

Gegevens manipuleren in SQL

4 Hr
323.5K
Bekijk detailsRight Arrow
Begin met de cursus
Meer zienRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer zienMeer zien