Subquery
- Een subquery is een gewone query met alle clausules in een andere query
- Subquery’s maken het mogelijk om tijdens het uitvoeren van de hoofdquery een extra query uit te voeren
- Ook wel inner - en outer query
Voorbeeld
Stel je wilt weten wie zit in de klas met iemand die in Nijmegen woont? Je zult twee vragen stellen
- Wie woont er in Nijmegen?
select *
from student
where woonplaats = ‘Nijmegen’;- Wie zit bij die student in de klas?
select klas_id
from studenten
where woonplaats=‘Nijmegen’Samen!
select *
from studenten
where klas_id = (select klas_id
from studenten
where woonplaats=‘Nijmegen’)Exceptions
Niet alle clausules zijn mogelijk in een subquery
- Order By
- Subquery kan resultaat niet manipuleren Order by zal resultaat hoofdquery sorteren
Regels
- Een subquery staat rechts van de operator in de where clausule
- De resultante van de subquery moet compatibel zijn met de expressie links van de subquery
where links = (rechts/subquery)Nesting
Subquery’s mogen zelf ook weer subquery’s bevatten die ook weer subquery’s mogen bevatten enzovoorts Dit principe noemen we nesting, net zoals dat bij loops en if statements nesting heet