Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Условия в WHERE или INNER? См. пример

Сергей Мыслитель (5402), закрыт 5 лет назад
Меня учили, что условие должно быть в WHERE, типа так

SELECT * FROM tab1
INNER JOIN tab2 ON tab1.id = tab2.id
WHERE
tab1.id != 123321

А сейчас я вижу вот такую запись

SELECT * FROM tab1
INNER JOIN tab2 ON tab1.id = tab2.id AND tab1.id != 123321

и меня аж трясёт и коробит. Но результат-то одинаковый, ёлкин кот!
Так какой вариант лучше, а какой хуже? И чем?
Лучший ответ
クマのプーさん Мудрец (15499) 5 лет назад
для inner join - одинаково
для outer join будет разница
СергейМыслитель (5402) 5 лет назад
А вот это уже аргумент. Особенно для динамического построения запроса. Спасибо!
Остальные ответы
palem Мудрец (11214) 5 лет назад
Както все сложно))))
Παν μέτρον άριστονМыслитель (9576) 5 лет назад
Первый способ правильный, второй способ просто рабочий. Что тут удивительного?
НИ-ЧЕ-ГО
Сергей Мыслитель (5402) Вот! Уже кое-что. Да, второй способ рабочий, но чем он не правильный? Мне он тоже не по душе, но именно на уровне ощущений, а я понять хочу, чем он хуже, дабы аргументировать, какого лешего меня понесло переписывать работающие запросы.
... Мыслитель (8101) 5 лет назад
учи английский тогда все явно будет. Условие выборки будет всегда через where (где) айди равно ...
www www Искусственный Интеллект (123085) 5 лет назад
От структуры БД зависит. А так одно и то же действие можно сотней разных способов провернуть...
Похожие вопросы