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 przedziale pociagu pospiesznego relacji Warszawa-Poznań siedzi matka a na korytarzu z nosami przy szybie stoją jej dwaj synowie. W pewnym momencie do przedziału wraca jeden z nich i pyta mamę:
- Mamusiu, jaka była teraz stacja??
- Nie wiem
- To niech się mamusia sie dowie
- Po co??
Bo franek na niej wysiadł..