#sql
Пожалуйста, дайте порядок выполнения операторов sql запроса или дайте ссылку, где
прочитать об этом: что за чем выполняется. Например (с потолка):
SELECT
t1.id AS id, t1.name AS name, count(*) AS cnt
FROM
tbl_name1 t1
INNER JOIN
tbl_name2 t2 ON t1.id = t2.id
WHERE
t1.id > 10
GROUP BY
t1.name
HAVING
cnt > 10
ORDER BY
t1.id
Сначала GROUP BY, потом? Последним ORDER BY...
Нигде не могу найти нормальной информации об этом :((
Ответы
Ответ 1
Порядок выполнения предложений в операторе selectОтвет 2
Для SQL Server смотри ссылку. Логический порядок обработки инструкции SELECT: FROM ON JOIN where GROUP BY WITH CUBE или WITH ROLLUP HAVING SELECT DISTINCT ORDER BY TOPОтвет 3
Порядок выполнения зависит от ситуации и определяется перед выполнением запроса. СУБД позволяют просмотреть план выполнения - это то, как именно СУБД решила выполнить запрос.Ответ 4
SELECT [DISTINCT | DISTINCTROW | ALL] select_expression,... [FROM table_references] [WHERE where_definition] [GROUP BY {unsigned_integer | col_name | formula} [ASC | DESC], ...] [HAVING where_definition] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC], ...]
Комментариев нет:
Отправить комментарий