Forskjellen mellom underspørring og korrelert underspørring
Er følgende del av SQL Query en normal spørring eller en Correlated Subquery ??
SELECT UserID,
FirstName,
LastName,
DOB,
GFName,
GLName,
LoginName,
LoginEffectiveDate,
LoginExpiryDate,
Password,
Email,
ReportingTo,
Mobile,
CommunicationPreference,
IsActive
FROM (SELECT row_number() OVER (ORDER BY FirstName) AS Row,
UserID,
FirstName,
LastName,
DOB,
GFName,
GLName,
LoginName,
LoginEffectiveDate,
LoginExpiryDate,
Password,
Email,
ReportingTo,
Mobile,
CommunicationPreference,
IsActive
FROM DivakarUserRegistration) T
Kan noen også oppgi forskjellen mellom de to?
43
3
Eksemplet over er ikke Co-relatert underspørring. Det er Derived Table/Inline-View siden det er en underspørring i FROM-setningen.
En Corelated Sub-spørring bør referere til sin overordnede (hovedspørring) tabell i den. Se for eksempel Finn den n-te maksimallønnen etter Co-relatert underspørring:
Korrelert underspørring er en underspørring som bruker verdier fra den ytre spørringen. I dette tilfellet må den indre spørringen utføres for hver rad i den ytre spørringen.
Se eksempel her http://en.wikipedia.org/wiki/Correlated_subquery
Enkel underforespørsel bruker ikke verdier fra den ytre spørringen og beregnes bare én gang:
Eksempel på relatert delspørring -
Query For å finne alle ansatte med lønn over gjennomsnittet for deres avdeling
Jeg tror forklaringen nedenfor vil hjelpe deg... . differensiering mellom disse:
Korrelert underspørring
er en indre spørring referert til av hovedspørring (ytre spørring) slik at den indre spørringen betraktes som gjentatte ganger.Ikke-korrelert underspørring er en underspørring som er uavhengig av den ytre spørringen, og den kan utføres på egen hånd uten å stole på den ytre hovedspørringen.
plain subquery
er ikke avhengig av den ytre spørringen,