Una sotto-interrogazione (subquery) è un'istruzione SELECT contenuta all'interno di un'altra interrogazione. Permette di suddividere un problema complesso in sotto-problemi più semplici.
E' possibile introdurre istruzioni SELECT:
WHERE
La sotto-interrogazione viene usata per:
Esistono tre tipi di sotto-interrogazioni:
subquery scalare: è un comando SELECT che restituisce un solo valore
ES: SELECT Max(valutazione) FROM Film;
subquery di colonna: è un comando SELECT che restituisce una colonna
ES: SELECT valutazione FROM Film
subquery di tabella: è un comando SELECT che restituisce una tabella con più di un attributo
ES: SELECT titolo, regista FROM Film;
La formulazione mediante subquery consente di separare il problema in due sottoproblemi
E' possibile per una sotto-interrogazione avere al suo interno un'altra sotto-interrogazione, predicati di join e tutti i predicati visti fino ad ora.
La clausola di qualificazione di una interrogazione può contenere una qualsiasi combinazione di condizioni normali e condizioni con sotto-interrogazioni.