OnderwerpenSpiekbriefjeLessen
Lurndo › Onderwerpen › Subquery

SQL leren: Subquery

Een vraag in een vraag

"Welke boeken zijn dikker dan gemiddeld?" Makkelijk, denk je, tot je merkt dat je het gemiddelde eerst zelf moet uitrekenen. Of je laat de database twee vragen tegelijk beantwoorden.

Een subquery geeft één waarde

Een subquery is een query tussen haakjes, binnen een andere query. De database voert ze eerst uit en gebruikt het resultaat alsof je het zelf had ingetypt.

Deze subquery berekent het gemiddeld aantal pagina's. De buitenste query houdt de boeken die daarboven zitten.

SELECT titel, paginas FROM boeken WHERE paginas > (SELECT AVG(paginas) FROM boeken)
Resultaat
titelpaginas
De stille rivier312
Het laatste licht401
Draken van het Noorden624
The Glass Harbour352
De code van Mercator336
Sterrenstof512
Winter Roads298
Moord op de markt304

Een subquery met IN geeft een lijst

Geeft de subquery meerdere rijen, dan gebruik je IN, net als met een lijst die je zelf typt. Hier geeft de subquery de nummers van boeken die ooit te laat terugkwamen. De buitenste query zoekt er de titels bij.

Zo combineer je twee tabellen zonder JOIN.

SELECT titel FROM boeken WHERE id IN (SELECT boek_id FROM uitleningen WHERE teruggebracht_op > terug_voor)
Resultaat
titel
De stille rivier
Nachtwacht in Brugge
Draken van het Noorden
De code van Mercator
Sterrenstof

Probeer het zelf

Welke leden hebben op dit moment een boek in huis (nog niet teruggebracht)? Toon hun naam.

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
← VorigeKiezen met CASEVolgende →Bestaat het? EXISTS en de valkuil van NOT IN
SQL-onderwerpenSpiekbriefjeExcelRanglijstAccountPrivacyEnglish