Questo articolo spiega su sottoquery non correlate e correlate in SQL Server (Transact-SQL) con l’esempio.
Sottoquery correlata
Una sottoquery correlata è la sottoquery il cui valore dipende dalla query esterna. La sottoquery correlata viene eseguita ripetutamente, una volta per ogni riga selezionata dalla sottoquery.
Nella sottoquery correlata la sottoquery verrà eseguita una volta e sostituirà il valore risultante nella clausola WHERE della query esterna.
Nota: Non è possibile eseguire sottoquery correlate indipendentemente dalla query esterna.
Creiamo due tabelle per comprendere la sottoquery correlata in SQL Server (T-SQL).
Tabella Prodotti:
1
2
3
4
5
6
7
8
9
10
11
|
Create table ProductsTable
(
ID int Primary Key,
Nome di tipo nvarchar(50),
Prezzo int,
Dettagli tipo nvarchar(150)
)
Insert into ProductsTable values (1, ‘Portatile’, 30000, ‘Un portatile per gli utenti home’)
Insert into ProductsTable values (2, ‘Lavatrice’, 20000, ‘colore Bianco anteriore caricare in macchina ‘)
Insert into ProductsTable values (3, ‘TV’, 22000, ’32 pollici HD LED TV’)
Insert into ProductsTable values (4, ‘Frigorifero’, 30000, ‘190 Litri doppia porta frigorifero’)
|
Record di Vendite Tabella:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Create table SaleRecordTable
(
Id int Primary Key Identità,
ProductID int,
SoldQuantity int,
SaleDate Date
)
Insert into SaleRecordTable Values (2, 3, ’10-10-2016′)
Insert into SaleRecordTable Values (3, 5, ’10-10-2016′)
Insert into SaleRecordTable Values (2, 2, ’11-10-2016′)
Insert into SaleRecordTable Values (4, 6, ’11-10-2016′)
Insert into SaleRecordTable Values (2, 6, ’12-10-2016′)
Insert into SaleRecordTable Values (4, 6, ’13-10-2016′)
|
La query recupererà il prodotto totale venduto dalla tabella dei record di vendita. Nella sottoquery totale prodotto venduto i dati vengono recuperati per ogni ID prodotto della tabella prodotti.
1
2
3
4
|
–correlated subquery
Select Name,
(Select SUM(SoldQuantity) from SaleRecordTable where ProductId = ProductsTable.ID) ‘Quantità Totale Venduta’
da ProductsTable
|
Uscita:
Se si esegue la sottoquery indipendentemente quindi si verrà visualizzato il seguente messaggio di errore.
Sottoquery non correlata
Una sottoquery non correlata è una sottoquery indipendente dalle query esterne. È possibile eseguire sottoquery non correlate indipendentemente dalla query esterna.
1
2
3
4
|
–Non correlated query
Select ID, Name, Details
From ProductsTable
Where ID = (Select ProductID from SaleRecordTable Where SaleDate =’10-10-2016′ AND ProductID =2)
|
Output:
Se eseguirai la sottoquery in modo indipendente, questa volta non otterrai alcun errore. L’output sarà:
Spero che questo articolo ti abbia aiutato a capire la sottoquery correlata e non correlata in SQL Server. Si prega di inviare i vostri commenti per domande e feedback. Grazie per aver letto.
- Bio
- Latest Posts
Ultimi messaggi di Gyanendu Shekhar (vedi tutti)
- Utilizzo di Materiale Trasparente in Unity 3D – 8 febbraio 2021
- iniziamo con UI Toolkit : Unity 3D Tutorial – 30 di dicembre, 2020
- Utilizzo di Eventi in Unity 3D – 2 Maggio 2020