Sql inner join - разница запроса

Рейтинг: 0Ответов: 2Опубликовано: 28.03.2023

Есть ли разница между

select * from a join b

и

select * from b join a

Мне кажется, что разница будет только в outer join, а в inner разницы нет. Это верно?

Ответы

▲ 1

Если A и B - это таблицы или представления, не использующие переменных, функций и иных хранимых объектов, а сам JOIN - не латеральный, то утверждение скорее всего верно. Иначе скорее всего нет. Впрочем, зависит от диалекта.

Пример. B - табличная функция на основе значения выражения, получаемого из таблицы A. Первый запрос легитимен, тогда как второй синтаксически ошибочен. DEMO в синтаксисе MySQL

▲ 0

Да, это так. Пояснение: inner join — это как бы пересечение множеств, т.е. остается только то, что есть в обеих таблицах.