Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Фильтрация первой таблицы до итоговой таблицы / 6 сообщений из 6, страница 1 из 1
15.06.2020, 13:06
    #39969290
Bereteli
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация первой таблицы до итоговой таблицы
Добрый день, такой вопрос.
Использую несколько таблиц 1с в связке через Inner join и left join. Использую для фильтрации подключаемых таблиц такую структура:
select
*
from table1
Inner join table2 on table2.column1 = table1.column1 and table2.column1 = "a"

Вопрос, как можно отфильтровать первую входящую таблицу по такому же принципу. Я понимаю, что в конце запроса можно написать WHERE, но этот фильтр уже поставится на итоговую таблицу, а у меня таких таблиц штук 10, и именно от первой зависит объем информации
...
Рейтинг: 0 / 0
15.06.2020, 13:10
    #39969291
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация первой таблицы до итоговой таблицы
BereteliЯ понимаю, что в конце запроса можно написать WHERE, но этот фильтр уже поставится на итоговую таблицу, а у меня таких таблиц штук 10, и именно от первой зависит объем информацииВы это увидели в плане выполнения или просто фантазируете?
...
Рейтинг: 0 / 0
15.06.2020, 13:12
    #39969295
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация первой таблицы до итоговой таблицы
Bereteli
но этот фильтр уже поставится на итоговую таблицу, а у меня таких таблиц штук 10


не считай оптимизатор глупее себя
что и в какой последовательности будет "фильтроваться" видно в плане запроса

нуу, а если "буквально" отвечать на твой вопрос, то так

Код: sql
1.
2.
3.
4.
select
*
from (select * from table1 where ...) as t1
Inner join table2 on table2.column1 = t1.column1 and table2.column1 = "a"
...
Рейтинг: 0 / 0
15.06.2020, 13:12
    #39969296
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация первой таблицы до итоговой таблицы
Bereteli
Вопрос, как можно отфильтровать первую входящую таблицу по такому же принципу. Я понимаю, что в конце запроса можно написать WHERE, но этот фильтр уже поставится на итоговую таблицу, а у меня таких таблиц штук 10, и именно от первой зависит объем информации


То, что where идет после from, совсем не значит, что физически эти операции будут выполнятся в том же порядке.

"Перенос" фильтра в on так же не гарантируется последовательность применения этих фильтров.
...
Рейтинг: 0 / 0
15.06.2020, 13:18
    #39969299
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация первой таблицы до итоговой таблицы
msLex
Bereteli
Вопрос, как можно отфильтровать первую входящую таблицу по такому же принципу. Я понимаю, что в конце запроса можно написать WHERE, но этот фильтр уже поставится на итоговую таблицу, а у меня таких таблиц штук 10, и именно от первой зависит объем информации


То, что where идет после from, совсем не значит, что физически эти операции будут выполнятся в том же порядке.

"Перенос" фильтра в on так же не гарантируется последовательность применения этих фильтров.


Есть единственный способ гарантированно изменить последовательность -- занести результаты первого подзапроса во временную таблицу и уже к ней цеплять остальное.

Впрочем, это делается если вы уверены, что такая последовательность правилоная.
...
Рейтинг: 0 / 0
15.06.2020, 14:02
    #39969327
Bereteli
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтрация первой таблицы до итоговой таблицы
Спасибо за ответы.
Вариант select'a после from я знаю, просто думал,может можно это как-то по короче сделать, как в том же иннере. Спасибо всем за ответы
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Фильтрация первой таблицы до итоговой таблицы / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]