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).

 

Opublikowane w kategriach: MySQL, DB, Windows

Na wesoło ;)

W środku nocy mąż zrywa się z łoża i przestępując z nogi na nogę trzyma się za krocze. Zaspana żona pyta się go:
- Co ci się stało?
- Aaaaa... bo nagle mi się baby zachciało.
Żona rozkosznie się przeciąga i mówi:
- No to chodź - zaprasza żona
- No to przecież chodzę - odpowiada mąż