Ez a cikk ismerteti a nem korrelált és korrelált alkeretek SQL Server (Transact-SQL) példával.
Korrelált Alkeretek
a korrelált alkeretek az alkeretek, amelyek értéke a külső lekérdezéstől függ. A korrelált alkeretet többször végrehajtják, egyszer minden egyes sorhoz, amelyet az alkerület választ ki.
Korrelált alkeretben az alkeretek egyszer végrehajtásra kerülnek, a kapott értéket pedig a külső lekérdezés WHERE záradékába helyettesítik.
megjegyzés: a külső lekérdezéstől függetlenül nem hajthat végre Korrelált alkeretet.
hozzunk létre két táblázatot, hogy megértsük az SQL Server (T-SQL) Korrelált alkeretét.
termék táblázat:
1
2
3
4
5
6
7
8
9
10
11
|
Create table ProductsTable
(
ID int Primary Key
Név nvarchar(50),
Ár int,
Részletek nvarchar(150)
)
Insert into ProductsTable Values (1, ‘Laptop’, 30000, Egy laptop otthoni felhasználók számára’)
Insert into ProductsTable Értékek (2, ‘Mosógép’, 20000, Fehér színű első terhelés gép ‘)
Insert into ProductsTable Értékek (3, ‘TV’, 22000, ’32 cm-es HD LED TV-t’)
Insert into ProductsTable Értékek (4, ‘Hűtő’, 30000, ‘190 Ltr dupla ajtós hűtőszekrény’)
|
Eladási Rekordot Táblázat:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Create table SaleRecordTable
(
Id int Primary Key Identity,
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′)
|
a lekérdezés letölteni teljes eladott termék értékesítési rekord tábla. Az alkeretben az összes eladott termék adatait a termékazonosító táblázat minden egyes termékazonosítójához visszakeresjük.
1
2
3
4
|
–correlated subquery
Select Name,
(Select SUM(SoldQuantity) from SaleRecordTable where ProductId = ProductsTable.ID) A”teljes eladott mennyiség”
a ProductsTable
|
kimenet:
ha önállóan futtatja az alkeretet, akkor a következő hibát kapja.
nem korrelált Subquery
a nem korrelált subquery egy olyan alkeriség, amely független a külső lekérdezésektől. A külső lekérdezéstől függetlenül nem korrelált alkeretet hajthat végre.
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)
|
kimenet:
ha önállóan futtatja az alkeretet, akkor ezúttal nem fog hibát kapni. A kimenet a következő lesz:
Remélem, ez a cikk segített megérteni Korrelált és nem korrelált subquery SQL Server. Kérjük, tegye meg észrevételeit a lekérdezések, visszajelzések. Kösz, hogy olvastál.
- Bio
- Latest Posts
Legújabb hozzászólások Gyanendu Shekhar (minden)
- Használatával Átlátszó Anyag a Unity 3D – február 8., 2021
- első lépések UI Toolkit : Unity 3D-s Bemutató – December 30, 2020
- Az Események a Unity 3D – Május 2, 2020