Думайте о JOIN
s как о перекрестном произведении двух таблиц, которое фильтруется с использованием условий, указанных в предложении ON
.Ваше предложение WHERE
затем применяется к набору результатов, а не к отдельным таблицам, участвующим в объединении.
Если вы хотите применитьWHERE
только для одной из соединенных таблиц, вам нужно будет использовать подзапрос.Отфильтрованный результат этого подзапроса будет затем обрабатываться как обычная таблица и объединяться с таблицей real , снова используя JOIN
.
Если вы делаете это для повышения производительности, помните, чточто объединение почти всегда быстрее в стандартных JOIN
s по сравнению с подзапросами для правильно проиндексированных таблиц.Вы обнаружите, что запросы, использующие JOIN, будут на несколько порядков быстрее, чем запросы, использующие подзапросы, за исключением редких случаев.