Plantilla:PHP/SQL subconsultas

De WikiEducator
Saltar a: navegación, buscar

Qué es una subconsulta



Icon define.gif
Qué es una subconsulta
Es una consulta que realizamos dentro de otra con el objetivo de obtener uno o varios valores que necesitamos en la consulta principal para comparar valores


  • Miramos el siguiente ejemplo


size=100px

Estructura de una subconsulta
  • La subconsulta o consulta interna se ejecuta antes que la consulta principal


Img subquery2.png


  • En el ejemplo anterior la consulta quedaría


Img subquery3.png



Icon activity.jpg
Ejemplo

Obtener todos los trabajos (tabla JOBS) cuyo salario min sea mayor que el salario del trabajador cuyo id es 103

  • Si lo hiciéramos sin subconsultas primero obtendríamos el sueldo del empleado 103
SELECT SALARY FROM EMPLOYEES WHERE EMPLOYEE_ID = 103;
  • Y luego usaríamos ese valor para obetener los trabajos que nos interesan
SELECT job_id, job_name form JOBS WHERE min_salary > 9000;



Reglas a la hora de usar una subconsulta

Img subquery4.png

Tenemos dos tipos de subconsultas
  1. Subconsultas que devuelven una sola fila
  2. Subconsultas que devuelven varias filas

Img subquery5.png

  • Los operadores de comparación serán diferentes según estemos en un caso u otro
  • Es totalmente lógico, no es lo mismo comparar salario con un valor, que con un conjunto de valores
Subconsutlas que devuelven una fila
  • Este tipo de subconsulta utiliza operadores de una sola fila

Img subquery6.png


Icon activity.jpg
Ejemplo
Mostrar los empleados, cuyo id de cargo sea el mismo que el del empleado 141





Icon activity.jpg
Ejemplo
Mostrar empleados (nombre, trabajo y salario) que trabajen en el mismo trabajo que trabaja Taylor y cobren más que el sueldo de Taylor



También la subconsulta puede retornar un valor resultado de una función de agrupación


Icon activity.jpg
Ejemplo
Mostrar empleados (nombre, trabajo y salario) que cobren más que la media que se cobra en la empresa