Dit artikel legt uit over niet-gecorreleerde en gecorreleerde subquery in SQL Server (Transact-SQL) met voorbeeld.
gecorreleerde Subquery
een gecorreleerde subquery is de subquery waarvan de waarde afhankelijk is van de buitenste query. De gecorreleerde subquery wordt herhaaldelijk uitgevoerd, eenmaal voor elke rij die door de subquery wordt geselecteerd.
In gecorreleerde subquery zal de subquery eenmaal worden uitgevoerd en zal de resulterende waarde vervangen door WHERE clausule van de buitenste query.
Opmerking: U kunt geen gecorreleerde subquery uitvoeren onafhankelijk van de buitenste query.
laten we twee tabellen maken om gecorreleerde subquery in SQL Server (T-SQL) te begrijpen.
Productentabel:
1
2
3
4
5
6
7
8
9
10
11
|
Create table ProductsTable
(
ID int Primaire Sleutel
Naam nvarchar(50),
Prijs int
Details nvarchar(150)
)
Invoegen in ProductsTable Values (1, ‘Laptop’, 30000, ‘Een laptop voor thuis gebruikers’)
Invoegen in ProductsTable Values (2, ‘Wasmachine’, 20000, ‘Witte kleur voor het laden van de machine ‘)
Invoegen in ProductsTable Values (3, ‘TV’, 22000, ’32-inch HD LED-TV’)
Invoegen in ProductsTable Values (4, ‘Koelkast’, 30000, ‘190 Ltr dubbele deur koelkast’)
|
de Omzet Record Tabel:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Create table SaleRecordTable
(
Id int Primaire Sleutel Identiteit,
Productnummer 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′)
|
zal de query het totale verkochte product ophalen uit de tabel met verkooprecords. In subquery totaal product verkocht gegevens worden opgehaald voor elk product id van producten tabel.
1
2
3
4
|
–correlated subquery
Select Name,
(Select SUM(SoldQuantity) from SaleRecordTable where ProductId = ProductsTable.ID) als”totale verkochte hoeveelheid”
uit Productstabiel
|
Output:
Als u de subquery onafhankelijk uitvoert, krijgt u de volgende fout.
niet-gecorreleerde Subquery
een niet-gecorreleerde subquery is een subquery die onafhankelijk is van externe query ‘ s. U kunt niet-gecorreleerde subquery uitvoeren onafhankelijk van de buitenste query.
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)
|
uitvoer:
Als u de subquery onafhankelijk uitvoert dan krijgt u deze keer geen fout. De uitvoer zal zijn:
hoop dat dit artikel u heeft geholpen om gecorreleerde en niet-gecorreleerde subquery in SQL Server te begrijpen. Plaats uw opmerkingen voor vragen en feedback. Bedankt voor het lezen.
- Bio
- Latest Posts
Laatste bericht door Gyanendu Shekhar (zie all)
- het Gebruik van Transparant Materiaal in Eenheid 3D – februari 8, 2021
- Aan de slag met UI Toolkit : Unity 3D Tutorial – 30 December 2020
- met Behulp van de Gebeurtenissen in Eenheid 3D – Mei 2, 2020