Junior #select#execution-order#alias
Thứ tự thực thi logic của một câu SELECT là gì?
⚡ Trả lời nhanh
Thứ tự logic: FROM/JOIN, WHERE, GROUP BY, HAVING, SELECT, DISTINCT, ORDER BY, LIMIT. Vì vậy alias khai báo ở SELECT không dùng được trong WHERE nhưng dùng được trong ORDER BY.
1. FROM / JOIN -> xác định tập dòng nguồn
2. WHERE -> lọc dòng
3. GROUP BY -> gom nhóm
4. HAVING -> lọc nhóm
5. SELECT -> tính biểu thức, đặt alias
6. DISTINCT
7. ORDER BY -> sắp xếp (thấy alias)
8. LIMIT / OFFSET
SELECT price * qty AS amount FROM items
WHERE amount > 100; -- lỗi ở nhiều DBMS: alias chưa tồn tại