LINUX.ORG.RU

Как работает WHERE, ON и USING?

 


0

1

Мои предположения: WHERE: сначала выполняется запрос а потом к нему применяется WHERE и отсеивает записи.

ON: Записи из двух таблиц сопоставляются и сравниваются в результат попадают записи удовлетворяющие условию. Если вместе с ON применяется WHERE, то из данного результата с самого начала WHERE отсеивает записи.

USING: работает как ON. Отличается только тем, что можно указать только название поля, которое совпадает в двух таблицах

Все не так. Оптимизатор строит план запроса из имеющихся ресурсов. К примеру при запросе по ПК будет поиск в уникальном индексе а потом загрузка искомой записи по ссылке. То есть этапа выполнения запроса нет (в твоей терминологии). Сразу находится то, что нужно. USING ON и WHERE работают одинаково, но в разных контекстах.

Суть в том, что sql - язык декларативный. Ты описываешь связи между таблицами, оптимизатор строит план запроса, то есть последовательность действий, которую надо выполнить, чтобы получить искомое.

Psilocybe ★★★★
()
Последнее исправление: Psilocybe (всего исправлений: 2)

Посмотри план запроса, зачем гадать.

cppsektant
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.