#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], ...]
Комментариев нет:
Отправить комментарий