Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Subinterogari corelate
In exemplele anterioare, interogarea interioara era evaluata prima, dupa care valoarea sau valorile rezultate sunt utilizate in clauza WHERE din interogarea exterioara. Forma cea mai performanta de subinterogare este considerata a fi subinterogarea corelata, caz in care interogarea exterioara trimite repetat cate o valoare pentru interogarea interioara. De fiecare data cand este transmisa o valoare, este evaluata interogarea interioara. Daca ambele interogari acceseaza aceeasi relatie, trebuie asigurate alias-uri pentru fiecare referinta la relatie. Ambele interogari acceseaza tupluri diferite din aceeasi relatie in acelasi timp.
Exemplu:
Se doreste sa se vada in ce depozite sunt stocuri pentru acelasi produs si in cantitatea cea mai mare.
Select cod_depozit, B.cod_produs, B.cantitate
From Stocuri B
Where cantitate=
(Select MAX (cantitate) From Stocuri A
Where A.cod_produs=B.cod_produs )
Evaluarea interogarii are loc astfel: - se considera cate un tuplu al interogarii exterioare. Interogarea exterioara trimite in mod repetat catre interogarea interioara codul produsului pentru fiecare tuplu din relatia stocuri. Interogarea interioara determina care este cantitatea maxima de produse pentru produsul respectiv. Aceasta valoare este retransmisa la interogarea exterioara care compara valoarea cantitatii de produse cu valoarea maxima. Daca valoarea este aceeasi, tuplul este selectat in relatia rezultat.
Copyright © 2025 - Toate drepturile rezervate