Dentro de las múltiples tareas que ejecutamos a diario con MySQL están los reportes, consultas de tablas en ocasiones de gran tamaño, alterar o crear tablas MySQL, importar archivos CSV, seleccionar registros, entre otras. Existe un parámetro llamado Subselect el cual nos ayuda a reducir esta búsqueda notablemente y nos arroja resultados óptimos.
Esta sentencia subselect la podemos usar para devolver datos que van a ser usados en la consulta principal.
La sintaxis básica que maneja subselect es la siguiente:
SELECT column_name [, column_name ] FROM table1 [, table2 ] WHERE column_name OPERATOR (SELECT column_name [, column_name ] FROM table1 [, table2 ] [WHERE])Con esta sintaxis funciona.
Para este análisis usaremos la tabla llamada solvetic_mysql.
Y tenemos una tabla llamada Solvetic.
A continuación vamos a mostrar un ejemplo de cómo usar subselect en MySQL según las tablas anteriores. Supongamos que deseamos ver en la tabla solvetic_mysql la fecha de expiración antigua.
Para ello ingresaremos la siguiente sintaxis:
SELECT * FROM solvetic.solvetic_mysql where expired_date = (select min(expired_date) from solvetic.solvetic_mysql)Como vemos estamos usando un select dentro de otro select y estamos indicando que de la tabla solvetic_mysql se busque el valor mínimo (min) en la columna expired_date.
El valor desplegado es el siguiente si seleccionamos únicamente la siguiente sección:
select min(expired_date) from solvetic.solvetic_mysql
Si seleccionamos toda la línea veremos lo siguiente:
Otro ejemplo que podemos usar es el siguiente:
Supongamos que deseamos ver los sistemas operativos más usados en el período, para ello usaremos datos de las tablas solvetic_mysql y solvetic.
La idea es que de la tabla solvetic busquemos los nombres de los sistemas operativos (columna nombre) que se repitan en la columna title de la tabla solvetic_mysql.
Para ello ingresamos lo siguiente:
SELECT * FROM solvetic.solvetic where nombre in (select title name from solvetic.solvetic_mysql)El resultado obtenido será el siguiente:
Podemos ver que los sistemas que no están registrados en la tabla solvetic no figuran dentro del resultado general. Como vemos la opción subselect nos es muy útil para obtener diversa información usando otras sentencias en MySQL.
Para más información acerca de las sentencias en MySQL podemos ir al siguiente enlace: