join в MS SQL Server 7
Модератор: kdv
join в MS SQL Server 7
Сотрудник склепал запрос (точно воспроизвести не смогу) вида
select *
from table1
left join table2 on ...
left join table3 on ...
left join table4 on ...
Все объединилось и САМО отсортировалось, хотя order by никто не писал и после on поле не упоминалось.
Как это можно объяснить?
select *
from table1
left join table2 on ...
left join table3 on ...
left join table4 on ...
Все объединилось и САМО отсортировалось, хотя order by никто не писал и после on поле не упоминалось.
Как это можно объяснить?
Re: join в MS SQL Server 7
Ежели мартышку посадить за пишущую машинку, то за 100 мульёнов лет у неё есть хорошие шансы случайно напечатать "Евгения Онегина". Так сложились циклы работы оптимизатора и расположение записей на страницах слабофрагментированной базы.Burzum писал(а):Сотрудник склепал запрос (точно воспроизвести не смогу) вида
select *
from table1
left join table2 on ...
left join table3 on ...
left join table4 on ...
Все объединилось и САМО отсортировалось, хотя order by никто не писал и после on поле не упоминалось.
Как это можно объяснить?
Re: join в MS SQL Server 7
Это не совпадение. Вывод: Билл Гейтс - матрышка?Merlin писал(а): Ежели мартышку посадить за пишущую машинку, то за 100 мульёнов лет у неё есть хорошие шансы случайно напечатать "Евгения Онегина". Так сложились циклы работы оптимизатора и расположение записей на страницах слабофрагментированной базы.
Только по одному полю (Фимилия имя отчество) из Table2, по нему есть индекс.dimitr писал(а):По чему хоть отсортировалось? Всем полям выборки? Тут часом кластерные индексы не повлияли?
Последний раз редактировалось Burzum 17 дек 2004, 08:18, всего редактировалось 1 раз.
Если не указывать ЯВНО order by то сервер ничего не гарантирует. Он может выдавать данные стабильно в отсортированном виде но закладываться на это нельзя т.к. это просто особенности текущей реализации и никто никому не будет должен если в следующей версии этот порядок изменится.
Нет order by - нет и гарантии упорядочения.
[/b]
Нет order by - нет и гарантии упорядочения.
[/b]