72 похожих чатов

Всем привет, достаточно простой вопрос (два), но не могу найти

ответ.
есть два запроса
select * from TABLE_A a left join TABLE_B b on a.pk = b.fk and( a.date_start ≤ b.date and a.date_end ≥ b.date)

select * from TABLE_A a left join TABLE_B b on a.pk = b.fk where a.date_start ≤ b.date and a.date_end ≥ b.date

Что это за мода пошла делать отбор после ON, он же будет не корректный.
И второе, как будет происходить выполнение

Когда ограничение в части ON находиться это относиться только к подключаемой таблицы.
а когда после WHERE это уже касается итоговой выборки. <— Правильное утверждение ?

Спасибо!

9 ответов

14 просмотров

> Что это за мода пошла делать отбор после ON, он же будет не корректный. Смотря какой результат нужен... Но второй запрос просто вводит в заблуждение (такое code review не пройдёт ;) ), это да. > Когда ограничение в части ON То это относится к данному JOIN, да.

Chern-Oleksander Автор вопроса
Yaroslav Schekin
> Что это за мода пошла делать отбор после ON, он ...

Спасибо Вам огромное, а чисто случайно не подскажите как правильно спросить у гугла, про этапы выполнения запроса оптимизатором? Хочу понимать что выполняется первым, что последующим. Например select user_id from tbl_1 join tbl2 on tbl_1.id=tbl_2.id where user_id =1 Limit 1 Cначало выполняется соединения таблиц, формируется +/- виртуальная таблица, потом к этой таблице приминяются условия where, после выполняется условия limit... Спасибо!

Chern Oleksander
Спасибо Вам огромное, а чисто случайно не подскажи...

Что-то вроде "logical sequence of sql query execution", например.

Chern-Oleksander Автор вопроса
Yaroslav Schekin
Что-то вроде "logical sequence of sql query execut...

Спасибо) И просто интересно не зачтите за флуд. А на кого вы учились? и сколько времени ушло чтобы так хорошо разбираться в БД ? и что больше читаете или курсы или сертификацию проходите или еще что-то?

Chern Oleksander
Спасибо) И просто интересно не зачтите за флуд. А ...

1. На программиста. 2. Не помню... несколько лет, кажется. 3. Книги и документацию. И это off topic, наверное. ;)

Это не эквивалентные запросы

Не совсем правильное утверждение, где-то близко к истине, но хромает формулировка

Chern Oleksander
Согласен

Условие в on использует значения полей ДО join Условие в Where - ПОСЛЕ. Все достаточно просто

Похожие вопросы

Обсуждают сегодня

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
3
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Всем привет. Хотел бы написать для себя свою ос. Причины: 1) нужен опыт в чем-то 2) будет меньше весить 3) свое, но там будут свои задумки Я понимаю что нужно писать для всег...
Shadow Akira
18
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
5? да там все 10
Boris Vinogradov
12
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
что такое erg?
Maksim Lapshin
2
Карта сайта