SQL leren: Resultaten stapelen met UNION
Alles op één lijst
De laatste avond. Griet wil één persbericht met alles erin: de plaatsen waar de koers langskwam en de leiders van de klassementen. Allemaal uit verschillende queries, maar op één lijst.
Twee resultaten op elkaar
UNION zet het resultaat van twee queries onder elkaar. Waar een JOIN kolommen naast elkaar zet, stapelt UNION rijen.
UNION haalt meteen de dubbels weg. Lennik en Halle zijn start én aankomst, maar staan maar één keer in de lijst.
SELECT start AS plaats FROM etappes UNION SELECT aankomst FROM etappes| plaats |
|---|
| Bever |
| Galmaarden |
| Gooik |
| Halle |
| Herne |
| Lennik |
| Pepingen |
UNION ALL en de spelregels
UNION ALL houdt de dubbels wel, en is daardoor ook sneller. Drie regels gelden altijd: beide queries hebben evenveel kolommen, de namen komen van de eerste query, en een ORDER BY mag alleen helemaal op het einde.
Met een vaste tekst als kolom zie je waar elke rij vandaan komt.
SELECT start AS plaats, 'start' AS rol FROM etappes UNION ALL SELECT aankomst, 'aankomst' FROM etappes ORDER BY plaats| plaats | rol |
|---|---|
| Bever | start |
| Galmaarden | aankomst |
| Gooik | start |
| Halle | start |
| Halle | aankomst |
| Herne | start |
| Lennik | start |
| Lennik | aankomst |
Probeer het zelf
Toon elke plaats waar een etappe start of aankomt, met hoe vaak ze in totaal voorkomt (start en aankomst samen).
Klaar voor meer?
De volledige les heeft 5 oefeningen, van makkelijk naar uitdagend, met hints, punten en een reeks die je kan opbouwen.
Begin aan de les