Когда или почему вы бы использовали правое внешнее соединение вместо левого? - PullRequest
49 голосов
/ 12 января 2009

Википедия говорится:

"На практике явные правые внешние объединения используются редко, поскольку они всегда могут быть заменены левыми внешними объединениями и не предоставляют никакой дополнительной функциональности."

Может ли кто-нибудь представить ситуацию, когда он предпочел использовать ПРАВИЛЬНОЕ обозначение и почему? Я не могу придумать причину, чтобы когда-либо использовать это. Для меня это никогда не прояснит ситуацию.

Edit: Я ветеран Oracle, делающий новогоднюю резолюцию, чтобы отучить себя от (+) синтаксиса. Я хочу сделать это правильно

Ответы [ 11 ]

0 голосов
/ 27 сентября 2017

Я думаю, что трудно, если у вас нет права присоединиться в этом случае. бывший с оракулом.

with a as(
     select 1 id, 'a' name from dual union all
     select 2 id, 'b' name from dual union all
     select 3 id, 'c' name from dual union all
     select 4 id, 'd' name from dual union all
     select 5 id, 'e' name from dual union all
     select 6 id, 'f' name from dual 
), bx as(
   select 1 id, 'fa' f from dual union all
   select 3 id, 'fb' f from dual union all
   select 6 id, 'f' f from dual union all
   select 6 id, 'fc' f from dual 
)
select a.*, b.f, x.f
from a left join bx b on a.id = b.id
right join bx x on a.id = x.id
order by a.id
...