Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Разлика между подзаявка и корелирана подзаявка

Горният пример не е свързана подзаявка. Това е извлечена таблица / вграден изглед, тъй като т.е. подзаявка в клауза FROM.

Корелираната подзаявка трябва да препраща към своята родителска (главна заявка) таблица в нея. Например Вижте намерете N-та максимална заплата чрез свързана подзаявка:

SELECT Salary 
FROM Employee E1
WHERE N-1 = (SELECT COUNT(*)
             FROM Employee E2
             WHERE E1.salary <E2.Salary) 

Свързани срещу вложени подзаявки.

Техническата разлика между нормална подзаявка и свързана подзаявка е:

1. Цикъл: Свързан цикъл на подзаявка под основна заявка; като има предвид, че не вложени; следователно свързаната подзаявка се изпълнява при всяка итерация на основната заявка. като има предвид, че в случай на Nested-query; подзаявката се изпълнява първо, след това външната заявка се изпълнява след това. Следователно максималният бр. от изпълненията са NXM за корелирана подзаявка и N+M за подзаявка.

2. Зависимост (отвътре към външна срещу външна към вътрешна): В случай на съвместно свързана подзаявка, вътрешната заявка зависи от външната заявка за обработка, докато при нормалната подзаявка външната заявка зависи от вътрешната заявка.

3.Изпълнение: Използването на ко-свързана производителност на подзаявка намалява, тъй като изпълнява NXM итерации вместо N+M итерации. ¨ Съвместно изпълнение на подзаявка.

За повече информация с примери:

http://dotnetauthorities.blogspot.in/2013/12/Microsoft-SQL-Server-Training-Online-Learning-Classes-Sql-Sub-Queries-Nested-Co-related.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Форматиране на sysjobhistory дата и време на колони в SQL Server

  2. Каква е разликата между използването на кръстосано свързване и поставянето на запетая между двете таблици?

  3. SQL Server 2016:Архивиране на база данни

  4. Въведение в синонимите в SQL Server

  5. 3 начина да получите името на деня от дата в SQL Server (T-SQL)