OnderwerpenSpiekbriefjeLessen
Lurndo › Onderwerpen › Self join

SQL leren: Self join

Een tabel met zichzelf koppelen

De Kraaien hebben een peterschap: elke jeugdspeler kan een mentor uit de eerste ploegen krijgen. "Wie is de mentor van wie?" vraagt Yasmine. Spelers en mentors staan in dezelfde tabel.

Een sleutel naar dezelfde tabel

In spelers staat mentor_id. Die wijst niet naar een andere tabel, maar naar het id van een andere speler in dezelfde tabel.

Lars Willems heeft mentor_id 4. Speler 4 is Yannick Diallo, de spits van de Heren A.

SELECT id, naam, mentor_id FROM spelers WHERE mentor_id IS NOT NULL
Resultaat
idnaammentor_id
9Lars Willems4
10Mila Jacobs6
11Senne Vermeulen2
12Amir Benali7
13Lena Michiels5
14Finn Coppens3
15Noah Lemmens4
SELECT id, naam FROM spelers WHERE ploeg_id IN (4, 5)
De eerste ploegen
idnaam
1Jonas Verhoeven
2Wout Hermans
3Bram De Smet
4Yannick Diallo
5Elke Van Dyck
6Nora Aerts
7Charlotte Maes
8Ines Goossens

Twee keer dezelfde tabel

Voor een self join zet je dezelfde tabel twee keer in je query, met twee verschillende aliassen. s is de speler, m de mentor. Voor de database zijn het gewoon twee tabellen die toevallig dezelfde rijen hebben.

De ON koppelt de mentor_id van de speler aan het id van de mentor.

SELECT s.naam AS speler, m.naam AS mentor FROM spelers s JOIN spelers m ON s.mentor_id = m.id
Resultaat
spelermentor
Lars WillemsYannick Diallo
Mila JacobsNora Aerts
Senne VermeulenWout Hermans
Amir BenaliCharlotte Maes
Lena MichielsElke Van Dyck
Finn CoppensBram De Smet
Noah LemmensYannick Diallo

Probeer het zelf

Toon elke jeugdspeler met een mentor. Toon de naam van de speler, en de naam en de positie van de mentor.

Klaar voor meer?

De volledige les heeft 7 oefeningen, van makkelijk naar uitdagend, met hints, punten en een reeks die je kan opbouwen.

Begin aan de les
← VorigeMeer dan twee tabellenVolgende →Tekst bewerken
SQL-onderwerpenSpiekbriefjeExcelRanglijstAccountPrivacyEnglish