Todo sobre la subconsultas

Cuando se habla de subconsulta simplemente nos referimos a un select que está dentro de otro. Las subconsultas son esas sentencias select el cual son parte esencial de la cláusula where de otra sentencia select. Su formato seria el mostrado a continuación:
[callout font_size=”13px” style=”bluegrey”]
SELECT …
FROM ….
WHERE columna operador_comparativo (SELECT….. FROM… WHERE…); [/callout]

En el momento que se pone a trabajar esa sentencia, primeramente se hace la subconsulta y después el resto de la sentencia.

Condiciones de búsqueda en subconsultas

Toda subconsulta usualmente se muestra como parte esencial de cada condición de alguna búsqueda que está dentro del here o having. La condición de búsqueda lograría estar dentro de cada subconsulta; Se compara la subconsulta de la siguiente forma; El comparar el valor de cada expresión usando un solo valor logrando así en la subconsulta. Se tratan de los símbolos convencionales de la comparación (<,>,=,<=,>=).

[callout font_size=”13px” style=”bluegrey”]Select * from empleado where oficio=(select oficio from empleado where apellido=Gonzales);[/callout]

Pertenece a un grupo de valores que son devueltos por la subconsulta: Se corrobora si ese valor permanece dentro del conjunto de valores que ha sido devuelto por la subconsulta.

[callout font_size=”13px” style=”bluegrey”]Select * from empleado where oficio IN (select oficio from empleado where departamento=20);[/callout]

La existencia: Ésta dice si la suconsulta ha devuelto una fila o no. Con ello se emplearán las palabras EXISTS o NOT EXITS.

[callout font_size=”13px” style=”bluegrey”]Select * from departamento where EXISTS (select * from empleado where empleado.id_departamento = departamento.id_departamento);[/callout]

La comparación cuantificada: Para ello asimismo se debe usar cada comparador sencillo unidos a ANY o ALL. ANY se encarga de comparar el valor de alguna expresión utilizando únicamente el conjunto de valores conseguidos de esa subconsulta. Con el cual, una de las comparaciones de TRUE da como resultado TRUE.

[callout font_size=”13px” style=”bluegrey”]Select * from empleado where salario = ANY (select salario from empleado where id_departamento=30);[/callout]

ALL logra comparar cada valor con una expresión de cada uno del grupo de valores conseguido de la subconsulta. Deben de ser todos TRYE con el objetivo de que la subconsulta devuelva el TRUE.

[callout font_size=”13px” style=”bluegrey”]Select * from empleado where salario < ALL (select salario from emple where id_departamento=20);[/callout]

Subconsultas que crean valores sencillos

Estas subconsultas que logran un único registro. Para eso se empleará cada operador de comparación sencilla. Si toda subconsulta ha devuelvo más de un solo registro saldrá un mensaje de error.

Subconsultas que crean listas de valores

Se trata de las subconsultas el cual se encargan de devolver más de un solo registro. En esa subconsulta se empleará el IN.

Subconsultas correlacionadas

Estas se refieren a una columna o diversas de cada consulta principal. Con el fin de poder verlo, lo mejor es colocar un ejemplo a continuación:

Se quiere conseguir la información de cada trabajador donde su salario sea el máximo salario en el departamento.

[callout font_size=”13px” style=”bluegrey”]Select * from empleado E where salario = (select max(salario) form empleado where id_empleado=E.id_empleado);[/callout]

Se trata de una sentencia que devuelve para cada fila y que se logra el máximo salario del departamento el cual se ha ido consiguiendo cada consulta principal.