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:
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’)
|
försäljningsrekord tabell:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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.
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:
om du kommer att köra underfrågan självständigt får du följande fel.
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.
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:
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:
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.
- Bio
- Latest Posts
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