SQL leren: JOIN
Tabellen koppelen met JOIN
"Ik wil gewoon een lijst met elke speler en de naam van zijn ploeg," zucht Yasmine. "Zonder telkens te moeten opzoeken." Dan laat je de database dat opzoekwerk doen.
JOIN ... ON
JOIN plakt twee tabellen aan elkaar. Na ON zeg je welke rijen bij elkaar horen: hier de speler en de ploeg waarvoor spelers.ploeg_id gelijk is aan ploegen.id.
Omdat beide tabellen een kolom naam hebben, zet je de tabelnaam ervoor: spelers.naam en ploegen.naam.
SELECT spelers.naam, ploegen.naam FROM spelers JOIN ploegen ON spelers.ploeg_id = ploegen.id| naam | naam |
|---|---|
| Jonas Verhoeven | Heren A |
| Wout Hermans | Heren A |
| Bram De Smet | Heren A |
| Yannick Diallo | Heren A |
| Elke Van Dyck | Dames A |
| Nora Aerts | Dames A |
| Charlotte Maes | Dames A |
| Ines Goossens | Dames A |
Zonder partner, geen rij
JOIN is kort voor INNER JOIN: je krijgt alleen rijen die aan beide kanten een partner hebben. Robbe en Fatima zitten in geen ploeg, dus vallen ze weg: 22 spelers, maar 20 rijen.
Onthoud dat. Vaak is het precies wat je wil, soms verlies je zo ongemerkt rijen.
SELECT COUNT(*) AS rijen_na_join FROM spelers JOIN ploegen ON spelers.ploeg_id = ploegen.id| rijen_na_join |
|---|
| 20 |
SELECT COUNT(*) AS spelers FROM spelers| spelers |
|---|
| 22 |
Probeer het zelf
Toon voor elke wedstrijd de datum, de tegenstander en de naam van de ploeg die speelde.
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