Jaka jest kolejność interpretowania elementów zapytania SQL
Podstawowe zapytanie SQL wygląda tak:
SELECT DISTINCT TOP (lista)
FROM (LewaTabela)
(typ łączenia) JOIN (PrawaTabela)
ON ([warunek])
WHERE (warunek)
GROUP BY (lista)
WITH (CUBE | ROLLUP)
HAVING (warunek)
ORDER BY (lista)
W jakiej kolejności jest interpretowane? Poniżej lista wg kolejności:
1. FROM (LewaTabela)
2. ON (warunek)
3. (typ łączenia) JOIN (PrawaTabela)
4. WHERE (warunek)
5. GROUP BY (lista)
6. WITH (CUBE | ROLLUP)
7. HAVING (warunek)
8. SELECT
9. DISTINCT
10. ORDER BY (lista)
11. TOP (lista)
Serwer SQL najpierw wykona FROM z tabel, potem warunki dla FROM, nastepnie jak ma być grupowane, sumowane - na końcu zapytanie SELECT
Oznacza to, że wszystko musi być zdefiniowane w porządku w jakim SQL będzie to wyliczał (aliasy, pola wyliczane, itp).
