subquery corelate în SQL Server

Acest articol explică despre subquery necorelate și corelate în SQL Server (Transact-SQL) cu exemplu.

subinterogare corelată

o subinterogare corelată este subinterogarea a cărei valoare depinde de interogarea exterioară. Subinterogarea corelată este executată în mod repetat, o dată pentru fiecare rând selectat de subinterogare.

în subinterogarea corelată subinterogarea va fi executată o singură dată și va înlocui valoarea rezultată în clauza WHERE a interogării exterioare.

notă: nu puteți executa Subinterogări corelate independent de interogarea exterioară.

să creăm două tabele pentru a înțelege subinterogarea corelată în SQL Server (T-SQL).

produse de masă:

MySQL

1
2
3
4
5
6
7
8
9
10
11

creați tabelul productstable
(
id cheie primară int,
nume nvarchar(50),
pret int,
detalii nvarchar(150)
)
introduceți în valorile produselor (1, ‘Laptop’, 30000, ‘un laptop pentru utilizatorii casnici’)
introduceți în valorile produselor (2, ‘Mașină de spălat’, 20000, ‘mașină de încărcare frontală de culoare albă ‘)
introduceți în valorile produselor (3, ‘TV’, 22000, ‘televizor LED HD de 32 inch’)
introduceți în valorile produselor (4, ‘frigider’, 30000, ‘190 Ltr frigider cu ușă dublă’)

corelate-subquery-produse-tabel

tabel record de vânzări:

MySQL

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

creați tabelul salerecordtable
(
id int cheie primară identitate,
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′)

correlated-subquery-sale-record-table

Correlated Subquery în SQL Server-Example

interogarea va prelua produsul total vândut din tabelul de înregistrări de vânzări. În subinterogare total produs vândut datele sunt preluate pentru fiecare ID produs de tabel produse.

MySQL

1
2
3
4

–correlated subquery
Select Name,
(Select SUM(SoldQuantity) from SaleRecordTable where ProductId = ProductsTable.ID) ca ‘cantitate totală vândută’
din Produsstable

ieșire:

corelat-și-necorelat-subquery-corelat-ieșire-1

dacă va rula subquery independent, atunci veți obține următoarea eroare.

subinterogare corelată și necorelată-ieșire corelată-2

subinterogare necorelată

o subinterogare necorelată este o subinterogare independentă de interogările exterioare. Puteți executa subinterogarea necorelată independent de interogarea exterioară.

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

dacă veți rula subquery independent, atunci de data aceasta nu veți primi nici o eroare. Rezultatul va fi:

corelat-și-necorelat-subquery-non-output-2

Sper că acest articol v-a ajutat să înțelegeți subquery-ul corelat și necorelat în SQL Server. Vă rugăm să postați comentariile dvs. pentru întrebări și feedback. Mulțumesc pentru lectură.

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.

profilul meu de Twitterprofilul meu de Facebookprofilul meu Google+

ultimele postări de gyanendu Shekhar (vezi toate)

  • folosind material transparent în UNITY 3D – 8 februarie 2021
  • Noțiuni de bază cu UI Toolkit : tutorial Unity 3D – 30 decembrie 2020
  • folosind evenimente în UNITY 3D – 2 mai 2020

Related Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *