Правое соединение против левого соединения, какая таблица левая или правая?

Данный

select * 
from a
left join b
on a.id = b.id

таблица a слева, а таблица b справа?

Будет ли это эквивалентно

Select *
from a
right join b
on b.id = a.id

потому что я поменял местами left и right, меняя пункт ON? Или a по-прежнему left, потому что оно было первым, а b стало right, потому что это то, к чему мы присоединяемся?

Спасибо.


person tenmiles    schedule 15.04.2020    source источник
comment
Прежде чем рассматривать публикацию, прочитайте руководство и погуглите любое сообщение об ошибке или множество четких, кратких и точных формулировок вашего вопроса/проблемы/цели, с вашими конкретными строками/именами и без них, а также с тегами site:stackoverflow.com и; прочитал много ответов. Если вы публикуете вопрос, используйте одну фразу в качестве заголовка. Отразите свое исследование. См. раздел Как задать вопрос и тексты при наведении указателя мыши на стрелку голосования. Пожалуйста, не задавайте и не отвечайте на повторяющиеся вопросы.   -  person philipxy    schedule 16.04.2020
comment
Отвечает ли это на ваш вопрос? Какая таблица точно ли левая таблица и правая таблица в операторе JOIN (SQL)?   -  person philipxy    schedule 16.04.2020


Ответы (1)


Нет. «Слева» и «справа» относятся к порядку таблиц в предложении FROM. Итак, они эквивалентны:

select * 
from a left join
     b
     on a.id = b.id

select * 
from b right join
     a
     on a.id = b.id

Эти два предложения on делают одно и то же:

on a.id = b.id
on b.id = a.id

Они никак не влияют на результаты.

person Gordon Linoff    schedule 15.04.2020