OnderwerpenSpiekbriefjeLessen
Lurndo › Onderwerpen › Meerdere joins

SQL leren: Meerdere joins

Meer dan twee tabellen

"Wie scoorde, tegen wie, en voor welke ploeg?" Yasmine wil een topschutterslijst voor het clubblad. Dat staat verspreid over vier tabellen.

JOIN na JOIN

Je mag zoveel JOIN's achter elkaar zetten als je wil. Elke JOIN krijgt zijn eigen ON. Hier krijgt elk doelpunt de naam van de maker en de tegenstander van die wedstrijd.

Volg de sleutels: doelpunten wijst naar spelers en naar wedstrijden.

SELECT s.naam, d.minuut, w.tegenstander FROM doelpunten d JOIN spelers s ON d.speler_id = s.id JOIN wedstrijden w ON d.wedstrijd_id = w.id
Resultaat
naamminuuttegenstander
Yannick Diallo12SK Molenhoek
Bram De Smet55SK Molenhoek
Yannick Diallo78SK Molenhoek
Charlotte Maes30Rapid Heidebos
Nora Aerts71Rapid Heidebos
Lars Willems8KV De Vaart
Lars Willems44KV De Vaart
Mila Jacobs60KV De Vaart

Een ketting van sleutels

Soms moet je via een tussentabel. Een doelpunt weet niet voor welke ploeg het was, maar wel in welke wedstrijd. En de wedstrijd weet welke ploeg speelde. Zo volg je de ketting doelpunten → wedstrijden → ploegen.

En je kan alles combineren met wat je al kent, zoals GROUP BY.

SELECT p.naam, COUNT(*) AS doelpunten FROM doelpunten d JOIN wedstrijden w ON d.wedstrijd_id = w.id JOIN ploegen p ON w.ploeg_id = p.id GROUP BY p.naam
Resultaat
naamdoelpunten
Dames A6
Heren A10
U112
U137
U154

Probeer het zelf

Maak de topschutterslijst. Toon per speler de naam, de naam van de ploeg en het aantal doelpunten.

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
← VorigeRIGHT en FULL JOINVolgende →Een tabel met zichzelf koppelen
SQL-onderwerpenSpiekbriefjeExcelRanglijstAccountPrivacyEnglish