Subconsulta dentro de registros de tabla única:
Cree una tabla llamada 'animales' en la base de datos 'datos.'Agregue el siguiente registro de diferentes animales con diferentes propiedades como se muestra. Obtenga este registro usando la consulta SELECT de la siguiente manera:
>> SELECCIONAR * DE datos.animales
Ejemplo 01:
Recuperemos los registros limitados de esta tabla usando las subconsultas. Usando la consulta a continuación, sabemos que la subconsulta se ejecutará primero y su salida se usará en la consulta principal como entrada. Una subconsulta simplemente está obteniendo la edad en la que el precio del animal es 2500. La edad de un animal cuyo precio es 2500 es 4 en la tabla. La consulta principal seleccionará todos los registros de la tabla donde la edad sea mayor de 4, y el resultado se da a continuación.
>> SELECCIONAR * DE datos.animales DONDE Edad> (SELECCIONE la edad de los datos.animales DONDE Precio = '2500');
Ejemplo 02:
Usemos la misma tabla en diferentes situaciones. En este ejemplo, usaremos alguna función en lugar de la cláusula WHERE en la subconsulta. Hemos estado tomando el promedio de todos los precios dados por animales. El precio medio será de 3189. La consulta principal seleccionará todos los registros de animales que tengan un precio superior a 3189. Obtendrá la siguiente salida.
>> SELECCIONAR * DE datos.animales DONDE Precio> (SELECCIONAR PROMEDIO (Precio) DE los datos.animales);
Ejemplo 03:
Usemos la cláusula IN en la consulta SELECT principal. En primer lugar, la subconsulta obtendrá precios superiores a 2500. Después de eso, la consulta principal seleccionará todos los registros de la tabla 'animales' donde el precio se encuentra en el resultado de la subconsulta.
>> SELECCIONAR * DE datos.animales DONDE Precio EN (SELECCIONAR Precio DE los datos.animales DONDE Precio> 2500);
Ejemplo 04:
Hemos estado usando la subconsulta para buscar el nombre del animal cuyo precio es 7000. Como ese animal es una vaca, es por eso que el nombre 'vaca' se devolverá a la consulta principal. En la consulta principal, todos los registros se recuperarán de la tabla donde el nombre del animal es 'vaca.Como solo tenemos dos registros para el animal 'vaca', es por eso que tenemos el siguiente resultado.
>> SELECCIONAR * DE datos.animales DONDE Nombre = (SELECCIONAR Nombre DE los datos.animales DONDE Precio = '7000');
Subconsulta dentro de varios registros de tabla:
Suponga las dos tablas siguientes, 'alumno' y 'profesor', en su base de datos. Probemos algunos ejemplos de subconsultas usando estas dos tablas.
>> SELECCIONAR * DE datos.estudiante;>> SELECCIONAR * DE datos.profesor;
Ejemplo 01:
Obtendremos datos de una tabla usando la subconsulta y la usaremos como entrada para la consulta principal. Esto significa que estas dos tablas pueden relacionarse de alguna manera. En el siguiente ejemplo, hemos estado usando la subconsulta para obtener el nombre del alumno de la tabla 'alumno' donde el nombre del profesor es 'Samina.'Esta consulta devolverá' Samina 'a la tabla de consulta principal' profesor.'La consulta principal seleccionará todos los registros relacionados con el nombre del profesor' Samina.'Como tenemos dos registros para este nombre, obtenemos este resultado.
>> SELECCIONAR * DE datos.profesor DONDE TeachName = (SELECT TeachName FROM data.estudiante DONDE TeachName = 'Samina');
Ejemplo 02:
Para elaborar la subconsulta en el caso de diferentes tablas, pruebe este ejemplo. Tenemos una subconsulta que está obteniendo el nombre del profesor del alumno de la tabla. El nombre debe tener 'i' en cualquier posición de su valor. Esto significa que todos los nombres en la columna TeachName que tengan 'i' en su valor serán seleccionados y devueltos a la consulta principal. La consulta principal seleccionará todos los registros de la tabla 'profesor' donde el nombre del profesor está en la salida devuelta por la subconsulta. Como la subconsulta devolvió 4 nombres de maestros, es por eso que tendremos un registro de todos estos nombres que residen en la tabla 'maestro.'
>> SELECCIONAR * DE datos.profesor DONDE TeachName IN (SELECCIONE TeachName DE los datos.estudiante DONDE TeachName LIKE '% i%');
Ejemplo 03:
Considere las dos tablas siguientes, 'orden' y 'orden1'.
>> SELECCIONAR * DE datos.pedido;>> SELECCIONAR * DE datos.order1;
Probemos una cláusula ANY en este ejemplo para elaborar una subconsulta. La subconsulta seleccionará el 'id' de la tabla 'order1', donde la columna 'Estado' tiene un valor de 'No pagado.'El' id 'puede ser más de 1. Esto significa que se devolverá más de 1 valor a la consulta principal para obtener los resultados del 'orden' de la tabla. En este caso, se podría usar cualquier 'id'. Tenemos el siguiente resultado para esta consulta.
>> SELECCIONAR artículo, ventas, identificación de datos.orden DONDE id = CUALQUIER (SELECCIONAR ID DE datos.order1 WHERE Status = 'No pagado');
Ejemplo 04:
Suponga que tiene los datos a continuación en la tabla 'order1' antes de aplicar cualquier consulta.
>> SELECCIONAR * DE datos.order1;
Apliquemos la consulta dentro de una consulta para eliminar algunos registros de la tabla 'order1'. En primer lugar, la subconsulta seleccionará el valor de 'Estado' de la tabla 'orden' donde el artículo es 'Libro.'La subconsulta devuelve' Pagado 'como valor. Ahora la consulta principal eliminará las filas de la tabla 'order1' donde el valor de la columna 'Estado' es 'Pagado.'
>> ELIMINAR DE los datos.order1 WHERE Status = (SELECT Status FROM data.order WHERE Item = 'Libro');
Al verificar, ahora tenemos los siguientes registros que permanecieron en la tabla 'order1' después de la ejecución de la consulta.
>> SELECCIONAR * DE datos.order1;
Conclusión:
Ha trabajado de manera eficiente con muchas subconsultas en todos los ejemplos anteriores. Esperamos que todo esté claro y limpio ahora.