Ricerca…


subquery

Una sottoquery è una query all'interno di un'altra query SQL. Una sottoquery viene anche chiamata query interna o selezione interna e l'istruzione contenente una sottoquery viene chiamata query esterna o selezione esterna.

Nota

  1. Le sottoquery devono essere racchiuse tra parentesi,
  2. Un ORDER BY non può essere utilizzato in una sottoquery.
  3. Il tipo di immagine come BLOB, array, tipi di dati di testo non sono consentiti nelle sottoquery.

Le sottoquery possono essere utilizzate con select, insert, update e delete statement all'interno di where, from, select clausola insieme a IN, operatori di confronto, ecc.

Abbiamo una tabella denominata ITCompanyInNepal su cui eseguiremo le query per mostrare esempi di subquery:

inserisci la descrizione dell'immagine qui

Esempi: Sottocartelle con istruzione Select

In con operatore e clausola where:

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

con operatore di confronto e dove clausola

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

con clausola select

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

Sottoquery con istruzione di inserimento

Dobbiamo inserire i dati dalla tabella IndianCompany a ITCompanyInNepal. La tabella per IndianCompany è la seguente:

inserisci la descrizione dell'immagine qui

INSERT INTO ITCompanyInNepal
SELECT * 
FROM IndianCompany

Sottoquery con la dichiarazione di aggiornamento

Supponiamo che tutte le società che hanno sede negli Stati Uniti decidano di licenziare 50 dipendenti da tutte le società statunitensi del Nepal a causa di qualche cambiamento nella politica delle società statunitensi.

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

Sottoquery con istruzione di cancellazione

Supponiamo che tutte le società la cui sede è la Danimarca abbiano deciso di chiudere le loro aziende dal 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow