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

SQL Server 2005 - Ред на вътрешните съединения

SQL е декларативен, т.е. редът на JOIN не трябва да има значение.

На практика обаче може, да речем, ако е сложна заявка, когато оптимизаторът не проучва всички опции (което на теория може да отнеме месеци).

Друг вариант е, че това е много различна заявка, ако пренаредите и получите различни резултати, но това обикновено е с OUTER JOINs.

И също така може да е начинът, по който е указана клаузата ON. Трябва да се промени, ако пренаредите клаузата FROM. Освен ако не използвате по-старата (и лоша) клауза JOIN-in-the-WHERE.

И накрая, ако е проблем, можете да използвате скоби, за да промените реда на оценяване, за да изясните намеренията си, да речем, филтрирайте първо върху голяма таблица, за да генерирате производна таблица.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UNION ALL гарантира ли реда на резултатния набор

  2. SQL Server, комбиниращ LIKE и IN?

  3. Как да получа списък с всички таблици в база данни с помощта на TSQL?

  4. Бързо вмъкване на релационни (нормализирани) таблици с данни в база данни на SQL Server 2008

  5. Грешка в операционната система на SQL Server 5:5 (Достъпът е отказан.)