Buscar..


Subconsultas

Una subconsulta es una consulta dentro de otra consulta SQL. Una subconsulta también se denomina consulta interna o selección interna y la declaración que contiene una subconsulta se denomina consulta externa o selección externa.

Nota

  1. Las subconsultas deben estar entre paréntesis,
  2. Un ORDER BY no se puede utilizar en una subconsulta.
  3. El tipo de imagen, como BLOB, matriz, tipos de datos de texto, no están permitidos en subconsultas.

Las subconsultas se pueden utilizar con declaraciones de selección, inserción, actualización y eliminación dentro de dónde, desde, cláusula de selección junto con IN, operadores de comparación, etc.

Tenemos una tabla llamada ITCompanyInNepal en la que realizaremos consultas para mostrar ejemplos de subconsultas:

introduzca la descripción de la imagen aquí

Ejemplos: Subconsultas con declaración selecta

con el operador In y la cláusula where :

SELECT *
FROM ITCompanyInNepal
WHERE Headquarter IN (SELECT Headquarter 
                      FROM ITCompanyInNepal
                      WHERE Headquarter = 'USA');

con operador de comparación y donde la cláusula

SELECT *
FROM ITCompanyInNepal
WHERE NumberOfEmployee < (SELECT AVG(NumberOfEmployee) 
                          FROM ITCompanyInNepal
                      )

con cláusula selecta

SELECT   CompanyName,
         CompanyAddress,
         Headquarter,
         (Select SUM(NumberOfEmployee)
         FROM ITCompanyInNepal
         Where Headquarter = 'USA') AS TotalEmployeeHiredByUSAInKathmandu
FROM     ITCompanyInNepal 
WHERE    CompanyAddress = 'Kathmandu' AND Headquarter = 'USA'

Subconsultas con declaración de inserción

Tenemos que insertar datos de la tabla IndianCompany en ITCompanyInNepal. La tabla para IndianCompany se muestra a continuación:

introduzca la descripción de la imagen aquí

INSERT INTO ITCompanyInNepal
SELECT * 
FROM IndianCompany

Subconsultas con estado de actualización

Supongamos que todas las compañías cuya sede central es EE. UU. Decidieron despedir a 50 empleados de todas las compaías de Nepal basadas en EE. UU. Debido a algún cambio en la política de las compaías estadounidenses.

UPDATE ITCompanyInNepal
SET NumberOfEmployee = NumberOfEmployee - 50
WHERE Headquarter IN (SELECT Headquarter 
                      FROM ITCompanyInNepal 
                      WHERE Headquarter = 'USA')

Subconsultas con declaración de borrado

Supongamos que todas las empresas cuya sede central es Dinamarca decidieron cerrar sus empresas de Nepal.

DELETE FROM ITCompanyInNepal
WHERE Headquarter IN (SELECT Headquarter 
                     FROM ITCompanyInNepal
                     WHERE Headquarter = 'Denmark')


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow