Índice

Las subconsultas sub-SELECT

Es posible insertar los resultados de una consulta en otra. Esto se puede encontrar después de la cláusula WHERE o bien sustituir una constante detrás de una cláusula IN o EXISTS, por ejemplo. Cargar datos:anidar una consulta

Hay dos tipos de subconsultas: anidadas o correlacionadas.

1. Las subconsultas anidadas

En función de lo que puede devolver la sub-SELECT, esta no se podrá situar en cualquier sitio.

Si el resultado de la consulta situada en una sub-SELECT solo recupera una fila, se podrá utilizar la subconsulta en lugar de cualquier constante.

Por ejemplo, si queremos recuperar todas las películas en cuyo casting ha participado al menos un actor francés, es necesario hacer una sub-SELECT que recupere el identificador de la tabla PAIS que corresponde al país ESPAÑA y después comprobar que la columna NACIONALIDAD de la tabla ACTOR se corresponde con el valor de la sub-SELECT.

Antes de probar la consulta completa, es preferible probar la subconsulta para comprobar su validez y que devuelve una única fila.

Ejemplo

SELECT PAIS.IDENT_PAIS FROM PAIS WHERE 
PAIS.NOMBRE = ’FRANCIA’;

muestra:

IDENT_PAIS   
----------   
         1

A continuación, se puede incluir la subconsulta en la consulta principal de la siguiente manera:

SELECT SUBSTR(PELICULA.TITULO,1,20) TITULO, PELICULA.FECHA_ESTRENO, 
       SUBSTR((REAL.APELLIDO||’ ’||REAL.NOMBRE),1,25) ...