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

  1. Wie woont er in Nijmegen?
select * 
from student 
where woonplaats = ‘Nijmegen’;
  1. 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

Groepsfuncties