SQL leren: LEFT JOIN
Niemand vergeten met LEFT JOIN
"Waar is de U15?" Yasmine wijst naar het scherm. "En de Veteranen? Die staan niet in de lijst van ploegen met hun trainer." Ze hebben geen trainer, en dus liet `JOIN` ze vallen.
LEFT JOIN houdt de linkertabel heel
LEFT JOIN houdt elke rij van de linkertabel, de tabel vóór JOIN, ook als er rechts geen partner is. De kolommen van rechts zijn dan NULL.
Zo staan de U15 en de Veteranen er wel bij, met een lege trainer.
SELECT p.naam, t.naam AS trainer FROM ploegen p LEFT JOIN trainers t ON p.trainer_id = t.id| naam | trainer |
|---|---|
| U11 | Ahmed El Amrani |
| U13 | Koen Peeters |
| U15 | NULL |
| Dames A | Sofie Wouters |
| Heren A | Marc Janssens |
| Veteranen | NULL |
Zoeken wat ontbreekt
Met LEFT JOIN vind je ook wat niet bestaat: rijen waarvoor rechts niets gevonden werd, hebben daar NULL. Filter je op IS NULL, dan hou je alleen die over.
Deze query zoekt de ploegen die nog geen enkele wedstrijd speelden.
SELECT p.naam FROM ploegen p LEFT JOIN wedstrijden w ON w.ploeg_id = p.id WHERE w.id IS NULL| naam |
|---|
| Veteranen |
Probeer het zelf
Welke ploegen hebben nog geen trainer? Gebruik een LEFT JOIN met trainers en toon de naam van de ploeg.
Klaar voor meer?
De volledige les heeft 6 oefeningen, van makkelijk naar uitdagend, met hints, punten en een reeks die je kan opbouwen.
Begin aan de les