Subselects en views - Gecorreleerde subselects - Gecorreleerde subselects met exists

6 belangrijke vragen over Subselects en views - Gecorreleerde subselects - Gecorreleerde subselects met exists

Wat doet de operator exists in tegenstelling tot de operator in?

Exists kijkt dus of de verzameling leeg is waar hij naar kijkt, dus de subselect en retourneerd dan de waarde true (niet leeg) of false (leeg).

De operator in kijkt of het element tot de verzameling behoort en retourneert een waarde true, false of unknown (als het null is)

Waarom kan in de volgende subselect een * staan?


select code, naam
from Cursus C
where exists (select *
from Inschrijving
where cursus = C.codeand vrijstelling = 'J');

Omdat er hier 'exists' wordt gebruikt en er dus alleen gekeken wordt of de query 1 of meer rijen oplevert. Het maakt dus niet uit wat de rij inhoud is.

Is 'exists' een gecorrelleerde subselect?

Ja eigenlijk altijd, omdat je altijd iets vergelijkt met iets wat opgevraagd wordt.
  • Hogere cijfers + sneller leren
  • Niets twee keer studeren
  • 100% zeker alles onthouden
Ontdek Study Smart

Waarom kan je bij een subselect met 'exists' ook 'select ' '' doen? Dus een spatie? Wanneer kan dat niet?

Dat kom omdat het niet om de inhoud van de rij gaat, maar of er een rij exists. Dus het kan bewst een constante zijn. Wanneer dat niet kan is als de SQL variant een lege string als null ziet.

Waarom gebruiken we een select * in de subselect met exists. Met andere woorden, waarom kan dit zonder performance problemen?

dAt komt omdat de sql optimizer hier goed mee omgaat.

Hoe kun je een combinatie met exists condities ook weleens oplossen met een join?


select acr, naam
from Docent D
join Begeleider B1 on D.acr = B1.docent
join Begeleider B2 on D.acr = B2.docent
where B1.cursus = 'DW' and B2.cursus = 'IM';

De vragen op deze pagina komen uit de samenvatting van het volgende studiemateriaal:

  • Een unieke studie- en oefentool
  • Nooit meer iets twee keer studeren
  • Haal de cijfers waar je op hoopt
  • 100% zeker alles onthouden
Onthoud sneller, leer beter. Wetenschappelijk bewezen.
Trustpilot-logo