Sql inner join - разница запроса
Есть ли разница между
select * from a join b
и
select * from b join a
Мне кажется, что разница будет только в outer join, а в inner разницы нет. Это верно?
Источник: Stack Overflow на русском
Есть ли разница между
select * from a join b
и
select * from b join a
Мне кажется, что разница будет только в outer join, а в inner разницы нет. Это верно?
Если A и B - это таблицы или представления, не использующие переменных, функций и иных хранимых объектов, а сам JOIN - не латеральный, то утверждение скорее всего верно. Иначе скорее всего нет. Впрочем, зависит от диалекта.
Пример. B - табличная функция на основе значения выражения, получаемого из таблицы A. Первый запрос легитимен, тогда как второй синтаксически ошибочен. DEMO в синтаксисе MySQL
Да, это так. Пояснение: inner join — это как бы пересечение множеств, т.е. остается только то, что есть в обеих таблицах.