welke join gebruiken in sql
Terug naar overzicht

Weten wanneer je welke JOIN moet gebruiken in SQL

Wil je weten wanneer je welke JOIN moet gebruiken in SQL? Je weet waarschijnlijk al dat je met behulp van een JOIN gegevens uit meerdere tabellen kan samenvoegen. Ook weet je waarschijnlijk al dat er verschillende soorten JOINS zijn:

  • (INNER) JOIN
  • LEFT (OUTER) JOIN
  • RIGHT (OUTER) JOIN
  • FULL (OUTER) JOIN

Wat de verschillen zijn tussen deze JOINs zullen we hieronder laten zien aan de hand van voorbeelden.

De datasets

We gaan werken met onderstaande datasets, ook wel tabellen genoemd:

join sql

De eerste dataset bevat de namen van de kinderen die zijn geboren in een bepaalde stad en de tweede dataset bevat de namen van de steden en in welke provincie deze liggen.

Hieronder gaan we uitleggen wat het resultaat is van de verschillende JOINs.

JOIN

De INNER JOIN wordt ook wel gewoon JOIN genoemd. Deze JOIN geeft als resultaat alleen rijen die in beide tabellen voorkomen.

De code om deze tabellen samen te voegen is:

  • Select N.ID, N.Naam, M. Provincie
  • FROM Geboorte N
  • JOIN Locatie M
  • ON N.Stad = M.Stad

Het resultaat van deze JOIN is:

welke join in sql

Te zien is dat ID 11 en 13 ontbreken. Dit is omdat de betreffende stad van deze ID’s ontbreekt in de locatie tabel.

Als je toch alle rijen wilt zien uit de eerste tabel (Geboorte) gebruik je een LEFT JOIN

LEFT JOIN

De LEFT (OUTER) JOIN wordt ook wel LEFT JOIN genoemd. Deze JOIN geeft als resultaat alle rijen uit de eerste (LEFT) tabel en alleen de gekoppelde rijen uit de tweede (RIGHT) tabel.

De code om deze tabellen samen te voegen is:

  • Select N.ID, N.Naam, M. Provincie
  • FROM Geboorte N
  • LEFT JOIN Locatie M
  • ON N.Stad = M.Stad

Het resultaat van deze JOIN is:

left join

Alle kinderen uit de eerste tabel worden nu wel getoond! Het is ook mogelijk om alle provincies uit de tweede tabel te tonen, ook al zijn er geen kinderen geboren in alle provincies. Hiervoor gebruik je RIGHT JOIN.

RIGHT JOIN

De RIGHT (OUTER) JOIN wordt ook wel RIGHT JOIN genoemd. Deze JOIN geeft als resultaat alle rijen uit de tweede (RIGHT) tabel en alleen de gekoppelde rijen uit de eerste (LEFT) tabel.

De code om deze tabellen samen te voegen lijkt heel veel op de vorige code. Alleen RIGHT vervangt LEFT:

  • Select N.ID, N.Naam, M. Provincie
  • FROM Geboorte N
  • RIGHT JOIN Locatie M
  • ON N.Stad = M.Stad

Het resultaat van deze JOIN is:

right join sql

Te zien is dat alleen kinderen worden getoond die in een stad zijn geboren die in de Locatie tabel bestaat. Amsterdam ontbreekt, dus die kinderen worden niet getoond.

Wanneer je alle rijen uit beide tabellen wilt zien, gebruik je een FULL JOIN

FULL JOIN

De FULL (OUTER) JOIN wordt ook wel FULL JOIN genoemd. Deze JOIN geeft als resultaat alle rijen uit beide tabellen.

De code om deze tabellen samen te voegen is:

  • Select N.ID, N.Naam, M. Provincie
  • FROM Geboorte N
  • FULL JOIN Locatie M
  • ON N.Stad = M.Stad

Het resultaat van deze JOIN is:

sql welke join gebruiken

Conclusie: welke JOIN gebruiken in SQL

Hieronder de verschillende soorten met het resultaat:

  • JOIN geeft alleen de overeenkomende records uit beide tabellen weer.
  • LEFT JOIN geeft alle records uit de eerste tabel weer en alleen de overeenkomende records uit de rechtertabel.
  • RIGHT JOIN geeft alle records uit de tweede tabel weer en alleen de overeenkomende records uit de linkertabel.
  • FULL JOIN geeft alle records uit beide tabellen weer.

In de praktijk zal je vaak een JOIN of LEFT JOIN gebruiken. De andere 2 komen minder voor. Wil je meer kennis opdoen over SQL? Schrijf je dan hieronder in en ontvang hoge korting op je eerste cursus.

Geschreven door

Thomas Duin

Eigenaar

Gespecialiseerd in diverse applicaties & software

SQL cursussen