CORRELATED SUBQUERY

Correlated Subquery è una query integrata con una outer (o parent) query cioè include riferimenti ad elementi della query padre e pertanto non può essere eseguita da sola.
La correlazione avviene tramite una relazione di almeno una colonna della tabella padre e di una colonna della subquery, all'interno della subquery stessa.

Correlated subqueries può essere utilizzato nelle istruzioni SELECT, UPDATE e DELETE.

Gli step eseguiti dal server Oracle per valutare una Correlated Subquey sono i seguenti:
  1. vengono estratte le opportune righe dalla outer query;
  2. ogni riga è utilizzata nella subquery, nella correlazione tra le colonne, e vengono restituite le righe dalla subquery;
  3. le suddette righe vengono utilizzate dalla clausola WHERE della outer query;
  4. la procedura è ripetuta per tutte le righe della tabella outer, finché tutte le righe sono processate.
E s e m p i o
SELECT FIRST_NAME,  LAST_NAME ,  JOB_ID ,  SALARY
FROM employees E
WHERE SALARY =
  ( SELECT AVG(min_salary)
    FROM jobs J
    WHERE J.job_id = E.job_id
    );

Una NON-CORRELATED SUBQUERY può essere definita come un insieme di query in sequenza in cui il risultato della inner query è utilizzato come valore di ricerca dalla outer query.


Post popolari in questo blog

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione

Create e Drop Pluggable Database