Korelovaného Poddotazu v SQL Server

Tento článek vysvětluje, o non-korelaci a korelační poddotaz SQL Server (Transact-SQL) s příkladem.

korelovaný poddotaz

korelovaný poddotaz je poddotaz, jehož hodnota závisí na vnějším dotazu. Korelovaný poddotaz se provádí opakovaně, jednou pro každý řádek, který je vybrán poddotazem.

V korelační poddotaz poddotazu bude spouštěno jednou a nahradí výslednou hodnotu do klauzule where vnějšího dotazu.

Poznámka: nelze spustit korelovaný poddotaz nezávisle na vnějším dotazu.

vytvoříme dvě tabulky, abychom porozuměli korelovanému poddotazu v SQL Serveru (T-SQL).

tabulka produktů:

MySQL

1
2
3
4
5
6
7
8
9
10
11

Vytvořit tabulku ProductsTable
(
ID int Primary Key,
Název nvarchar(50),
Cena int,
Detaily nvarchar(150)
)
Vložit do ProductsTable Values (1, ‚Notebook‘, 30000, ‚notebook pro domácí uživatele‘)
Vložit do ProductsTable Values (2, ‚Pračka‘, 20000, Bílá barva přední zatížení stroje ‚)
Vložit do ProductsTable Hodnoty (3, „TV“, 22000, ’32 palcový HD LED TV‘)
Vložit do ProductsTable Values (4, ‚Lednice‘, 30000, ‚190 Ltr dvojité dveře lednice‘)

korelované-poddotaz-výrobky-tabulka

Prodejní Rekord Stůl:

MySQL

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

Vytvořit tabulku SaleRecordTable
(
Id int, Primární Klíč, Identity,
int ProductID,
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′)

correlated-subquery-sale-record-table

Correlated Subquery v SQL Server-příklad

dotaz načte celkový prodaný produkt z tabulky prodejních záznamů. V poddotazu jsou načteny údaje o celkovém prodaném produktu pro každé id produktu v tabulce produktů.

MySQL

1
2
3
4

–correlated subquery
Select Name,
(Select SUM(SoldQuantity) from SaleRecordTable where ProductId = ProductsTable.ID) jako Celkové Množství Prodané‘
od ProductsTable

Výstup:

souvisí-a-non-korelaci-poddotaz-korelaci-výstup-1

Pokud se vám bude spuštěn poddotaz samostatně, pak dostanete následující chybu.

souvisí-a-non-korelaci-poddotaz-korelaci-výstup-2

Non-korelační Poddotaz

non-korelační poddotaz je poddotaz, který je nezávislý na vnějším dotazy. Nekorelovanou poddotaz můžete spustit nezávisle na vnějším dotazu.

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)

Výstup:korelované-poddotaz-non-výstup-1

Pokud se vám bude spuštěn poddotaz nezávisle, pak je tento čas nebudete mít žádné chyby. Výstupem pak bude:

souvisí-a-non-korelaci-poddotaz-non-výstup-2

Doufám, že tento článek vám pomohl pochopit korelaci a non-korelační poddotaz SQL Server. Prosím, psát své připomínky pro dotazy a zpětnou vazbu. Díky za přečtení.

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.

Můj Twitter profilMůj Facebook profiluMůj profil na Google+

Nejnovější příspěvky Gyanendu Shekhar (zobrazit všechny)

  • Pomocí Průhledného Materiálu v Unity 3D – 8. února 2021
  • začínáme s UI Toolkit : Unity 3D Tutoriál – 30. prosince 2020
  • Pomocí Události v Unity 3D – 2. Května 2020

Related Posts

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *