En SQL, una subconsulta correlacionada es una subconsulta que hace referencia a una columna de la consulta externa. La subconsulta se ejecuta repetidamente para cada fila de la consulta externa, utilizando los valores de la fila actual para realizar la subconsulta. El resultado de la subconsulta se utiliza luego en la evaluación de la consulta externa.
Las subconsultas correlacionadas se utilizan para el procesamiento fila por fila. Cada subconsulta se ejecuta una vez por cada fila de la consulta externa.
Una subconsulta correlacionada se evalúa una vez por cada fila procesada por la declaración principal. La declaración de los padres puede ser una SELECCIONAR , ACTUALIZAR , o BORRAR declaración.
Sintaxis:
SELECCIONE columna1, columna2,….
DE tabla1 exterior
DONDE operador columna1
(SELECCIONE columna1, columna2
DE la tabla2
DONDE expr1 =
exterior.expr2);
Una subconsulta correlacionada es una forma de leer cada fila de una tabla y comparar los valores de cada fila con datos relacionados. Se utiliza siempre que una subconsulta debe devolver un resultado o conjunto de resultados diferente para cada fila candidata considerada por la consulta principal. En otras palabras, puede utilizar una subconsulta correlacionada para responder una pregunta de varias partes cuya respuesta depende del valor de cada fila procesada por la declaración principal.
Subconsultas anidadas versus subconsultas correlacionadas
Con una subconsulta anidada normal, el interior SELECCIONAR La consulta se ejecuta primero y se ejecuta una vez, devolviendo valores que serán utilizados por la consulta principal. Sin embargo, una subconsulta correlacionada se ejecuta una vez por cada fila candidata considerada por la consulta externa. En otras palabras, la consulta interna está impulsada por la consulta externa.
NOTA: También puedes utilizar el CUALQUIER y TODO operador en una subconsulta correlacionada. EJEMPLO de subconsultas correlacionadas: Encuentre todos los empleados que ganan más que el salario promedio en su departamento.
Consulta:
SELECT last_name, salary, department_id FROM employees outer WHERE salary>(SELECCIONE AVG (salario) DE los empleados DONDE depart_id = external.department_id grupo por depart_id);>
Otro uso de la correlación es en ACTUALIZAR y BORRAR
ACTUALIZACIÓN CORRELACIONADA
UPDATE table1 alias1 SET column = (SELECT expression FROM table2 alias2 WHERE alias1.column = alias2.column);>
Utilice una subconsulta correlacionada para actualizar filas de una tabla en función de las filas de otra tabla.
BORRAR CORRELACIONADO
DELETE FROM table1 alias1 WHERE column1 operator (SELECT expression FROM table2 alias2 WHERE alias1.column = alias2.column);>
Utilice una subconsulta correlacionada para eliminar filas de una tabla en función de las filas de otra tabla.
ipconfig libre de Linux
Usando el operador EXISTE
El operador EXISTS prueba la existencia de filas en el conjunto de resultados de la subconsulta. Si se encuentra un valor de fila de subconsulta, la condición se marca VERDADERO y la búsqueda no continúa en la consulta interna, y si no se encuentra, la condición se marca FALSO y la búsqueda continúa en la consulta interna.
EJEMPLO de uso del operador EXIST:
Encuentre empleados que tengan al menos una persona a su cargo.
Consulta:
SELECT employee_id, last_name, job_id, department_id FROM employees outer WHERE EXISTS ( SELECT ’X’ FROM employees WHERE manager_id = outer.employee_id);>
PRODUCCIÓN :

EJEMPLO de uso del operador NO EXISTE
Encuentre todos los departamentos que no tienen empleados.
Consulta:
SELECT department_id, department_name FROM departments d WHERE NOT EXISTS (SELECT ’X’ FROM employees WHERE department_id = d.department_id);>
PRODUCCIÓN :

Preguntas frecuentes sobre subconsultas correlacionadas de SQL: preguntas frecuentes
¿Cuál es la diferencia entre subconsultas correlacionadas y subconsultas regulares?
Las subconsultas regulares (no correlacionadas) son independientes de la consulta externa y se evalúan solo una vez antes de que se ejecute la consulta principal. Por el contrario, las subconsultas correlacionadas dependen de la consulta externa y se ejecutan para cada fila de la consulta principal.
¿Cuándo debo utilizar subconsultas correlacionadas?
Las subconsultas correlacionadas son útiles cuando necesita filtrar el resultado de la consulta externa en función de alguna condición que requiere hacer referencia a valores de la propia consulta externa. Se utilizan comúnmente en escenarios donde la condición depende de datos de tablas relacionadas.