korrelerad Subquery i SQL Server

den här artikeln förklarar om icke-korrelerade och korrelerade subquery i SQL Server (Transact-SQL) med exempel.

korrelerad underfråga

en korrelerad underfråga är underfrågan som värdet beror på den yttre frågan. Den korrelerade underfrågan exekveras upprepade gånger, en gång för varje rad som väljs av underfrågan.

i korrelerad underfråga kommer underfrågan att köras en gång och kommer att ersätta det resulterande värdet i where-klausulen i den yttre frågan.

Obs: Du kan inte utföra korrelerade underfrågor oberoende av den yttre frågan.

Låt oss skapa två tabeller för att förstå korrelerad underfråga i SQL Server (T-SQL).

produkter tabell:

MySQL

1
2
3
4
5
6
7
8
9
10
11

Skapa tabell productstable
(
id int primärnyckel,
namn nvarchar(50),
pris int,
detaljer nvarchar(150)
)
infoga i ProductsTable värden (1, ’Laptop’, 30000, ’en bärbar dator för hemanvändare’)
infoga i ProductsTable värden (2, ’tvättmaskin’, 20000, ’vit färg front load machine ’)
infoga i ProductsTable värden (3, ’TV’, 22000, ’32 tums HD LED-TV’)
infoga i productstable värden (4, ’kylskåp’, 30000, ’190 ltr dubbeldörr kylskåp’)

korrelerade-subquery-produkter-tabell

försäljningsrekord tabell:

MySQL

Skapa tabell salerecordtable
(
id int primära nyckel identitet,
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′)

1
2
3
4
5
6
7
8
9
10
11
12
13

correlated-subquery-sale-record-table

Correlated Subquery i SQL Server-exempel

frågan kommer att hämta total produkt säljs från försäljning rekord tabell. I subquery hämtas totala produktsålda data för varje produkt-ID för produkttabellen.

MySQL

1
2
3
4

–correlated subquery
Select Name,
(Select SUM(SoldQuantity) from SaleRecordTable where ProductId = ProductsTable.ID) som ’total mängd såld’
från ProductsTable

utgång:

korrelerad-och-icke-korrelerad-subquery-korrelerad-utgång-1

om du kommer att köra underfrågan självständigt får du följande fel.

korrelerad-och-icke-korrelerad-subquery-korrelerad-utgång-2

icke-korrelerad Subquery

en icke-korrelerad subquery är en subquery som är oberoende av yttre frågor. Du kan utföra icke-korrelerade underfrågor oberoende av den yttre frågan.

Non-Correlated Subquery in SQL Server – Example

MySQL

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:correlated-subquery-non-output-1

Om du kör subquery självständigt kommer du inte att få något fel den här gången. Utgången kommer att vara:

korrelerad-och-icke-korrelerad-subquery-icke-utgång-2

hoppas den här artikeln hjälpte dig att förstå korrelerade och icke-korrelerade subquery i SQL Server. Skicka dina kommentarer för frågor och feedback. Tack för att du läste.

Share Button
The following two tabs change content below.

  • Bio
  • Latest Posts

My Twitter profileMy Facebook profileMy Google+ profile

Gyanendu Shekhar is a technology enthusiast. He loves to learn new technologies. His area of interest includes Microsoft technologies, Augmented reality, Virtual reality, unity3d and android development.

Min Twitter - profilmin Facebook - profilmin Google+ profil

senaste inlägg av gyanendu Shekhar (se alla)

  • använda transparent material i Unity 3D – februari 8, 2021
  • komma igång med UI Toolkit : Unity 3D tutorial-December 30, 2020
  • använda händelser i Unity 3D-maj 2, 2020

Related Posts

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *