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

Przychodzi Indianin do wodza i mówi:
- Dlaczego mamy takie brzydkie imiona?
- Brzydkie? A nie podoba ci się imię syna Sokole Oko?
- No..... podoba....
- A imię brata, Ryczący Niedźwiedź?
- No.... podoba....
- To nie zawracaj mi głowy Śmierdzący Mokasynie.