В чем состоит разница между «WHERE» и «AND» в LEFT JOIN?

В чем состоит разница между "WHERE" и "AND" в LEFT JOIN?
  • Вопрос задан
  • 360 просмотров
Пригласить эксперта
Ответы на вопрос 2
@mletov
Ну вообще-то корректнее сравнивать "WHERE" и "AND" в INNER JOIN, а не LEFT.

Поскольку "AND в WHERE" и "AND в INNER JOIN", с т зрения логики, выдают идентичные результаты, могут даже 0 записей вернуть, и вопрос только в том, какой план запроса будет оптимальнее. Но это уже надо предметно обсуждать на конкретной СУБД.

А LEFT JOIN работает по-другому, и записей может вернуть больше. Выборка никогда не будет пустая если левая таблица не пуста.
Ответ написан
Комментировать
@Akina
Сетевой и системный админ, SQL-программист.
В чем состоит разница между "WHERE" и "AND" в LEFT JOIN?

Тем, что AND operator может использоваться в том месте запроса, где он оказывает влияние на связывание с использованием LEFT JOIN (в составе выражения в ON clause), тогда как WHERE keyword в принципе не может использоваться в таком месте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы