powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / в чем разница?
4 сообщений из 4, страница 1 из 1
в чем разница?
    #38444408
barrac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В чем разница, между:

Код: sql
1.
2.
select * from doc_reception dr
inner join ref_departments dep on dr.department=dep.id and dep.id='id'



и

Код: sql
1.
2.
3.
select * from doc_reception dr
inner join ref_departments dep on dr.department=dep.id
where dep.id='id'



Я почему то думал, что первый вариант отрежет лишние данные на этапе объединения, а второй вариант вначале объединит "все" данные, а потом отрежет по условию. А знакомый говорит мне что при первом варианте индекс не будет работать, и нужно писать как во 2 варианте.

А Firebird 2.5 тем не-менее пофиг, и он на оба варианта выдает одинаковый план запроса, время выполнения и выделение памяти.
В обоих случаях :PLAN JOIN (DEP INDEX (PK_REF_DEPARTMENTS), DR INDEX (FK_DOC_RECEPTION_6)).

Так есть ли какая то разница между такими условиями?
...
Рейтинг: 0 / 0
в чем разница?
    #38444416
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrac,

разница между ними есть, но только в читаемости: принято условия соединения указывать в join-ветке, а условия фильтрации в where-ветке.
Для движка эти два запроса эквивалентны. Для человека приятнее/понятнее/обзорнее второй.
...
Рейтинг: 0 / 0
в чем разница?
    #38444449
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разница будет заметна если inner заменить на left

Код: sql
1.
2.
3.
select *
from t1
left join t2 on t1.code_t2 = t2.code_t2 and t2.code_t2 > 0
...
Рейтинг: 0 / 0
в чем разница?
    #38444543
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barracТак есть ли какая то разница между такими условиями?
для inner join - нет. http://www.ibase.ru/devinfo/joins.htm
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / в чем разница?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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