En este tutorial, aprenderemos y comprenderemos cómo podemos utilizar una subconsulta en SQL. Una subconsulta es una consulta dentro de otra consulta. También podemos llamarlo una consulta anidada dentro de una consulta más grande. Debe encerrarse entre corchetes y usarse principalmente en una cláusula WHERE .

Podemos utilizar subconsultas en SQL cuando necesitamos traer datos de varias tablas.
Por ejemplo, digamos que tenemos estas 2 tablas.

Este es el problema que tenemos que resolver. Necesitamos obtener el nombre del cliente, la ID de correo electrónico y la dirección de los clientes que compraron en 2022. Esto no es posible usando solo la tabla Clientes porque no hay un registro de ventas o una columna de fecha de pedido en esa tabla. Tenemos otras formas de resolver esto.

Tabla de contenido
Obtener datos manualmente a través de múltiples consultas individuales
Primero, dado que tenemos CustomerId de la tabla Sales , lo que podemos hacer es obtener la ID de los clientes de las personas que compraron en 2022 de la columna OrderDate en la tabla Sales .

Suponiendo que ahora tenemos el ID de los clientes ( 1, 3, 5, 7, 8, 9... ) de las personas que compraron a partir de 2022, podemos crear otra consulta para obtener la información de esos clientes a través de la tabla Clientes en función de su identificación _

El problema con este método es que hicimos el proceso manualmente. Primero, necesitamos obtener la identificación de los clientes e ingresarlos manualmente en la siguiente consulta para obtener la información de los clientes.
Obtener datos automáticamente a través de subconsultas en SQL
En lugar de ingresar manualmente sus ID, podemos hacerlo automáticamente usando una subconsulta en SQL . Podemos usarlo junto con la condición IN para traer automáticamente la identificación de los clientes o cualquier dato que necesitemos para resolver un problema determinado.
Este es un ejemplo de lo que podemos hacer para resolver el problema. En esta consulta de muestra, seleccionamos el nombre, la dirección y el ID de correo electrónico de los clientes de la tabla Clientes en función de su ID de cliente que proviene de la consulta anidada. En esta consulta anidada, el ID de cliente proviene de la tabla Ventas con una fecha de pedido de 2022.

Con esta técnica, no necesitamos ingresar manualmente el ID de cliente de las personas que compraron a partir del año 2022. Se obtendrá automáticamente de la consulta anidada que hemos creado.
Ejemplo de escenario de subconsulta a través de SQL Server Management Studio
Ahora tengamos un escenario similar y esta vez, hagámoslo dentro de SQL Server Management Studio ( SSMS ). En este ejemplo, tenemos otras dos tablas SalesOrderHeader y SalesTerritory .

Nuestro objetivo es obtener toda la información sobre SalesOrderHeader de una región de un país de EE. UU . En SalesOrderHeader , no tenemos la columna de la región del país.

Sin embargo, podemos usar la columna TerritoryID que también está disponible en la tabla SalesTerritory . Ahí es donde también podemos obtener la información de la región del país, que es la columna CountryRegionCode .


Nuevamente, podemos hacer esto manualmente obteniendo primero el TerritoryID de la tabla SalesTerritory con una región de país de EE. UU .

Luego tendremos la lista de TerritoryID en la región del país de EE. UU .

Después de eso, podemos usar esos ID para obtener el resultado deseado al ingresarlos manualmente en nuestra consulta.


Pero en lugar de ingresar manualmente las ID, podemos hacerlo fácilmente usando una subconsulta. Solo tenemos que reemplazarlo con nuestra primera consulta en la que obtenemos TerritoryID en la tabla SalesTerritory con una región de país de EE. UU.

Entonces nos dará el mismo resultado que el proceso manual.

Conclusión
Para resumir, hemos aprendido el uso y la importancia de la subconsulta en SQL. También hemos discutido la sintaxis adecuada para crear ciertas subconsultas. Ciertamente podemos crear múltiples consultas para crear un proceso manual para obtener un resultado determinado. Sin embargo, podemos utilizar el uso de la subconsulta con la cláusula WHERE y la condición IN para obtener automáticamente ciertos datos de otra tabla.
Con suerte, podrá utilizar esta técnica para lograr un uso más eficiente de sus futuras consultas.
Mis mejores deseos,
Hafiz
Descarga e instalación de SQL Server
SQL para usuarios de LuckyTemplates: nuevo curso de LuckyTemplates
Consulta de datos de múltiples fuentes de datos