Nie, nie ma warunku, w którym zestawy wyników będą różne.
Ale twoje założenie „a.id = b.id(+)
nie ma znaczenia” nie jest w 100% poprawne. ma znaczenie, ponieważ definiuje sprzężenie, w przeciwnym razie byłby to iloczyn kartezjański aib ze wszystkimi wierszami z a i b.name ='XYZ'.
To, co nie ma wpływu, to (+)
, ponieważ stwierdzenie jest „semantycznie” błędne. Nie ma sensu łączyć zewnętrzne na id, ale łączyć na nazwę.
Zwykle coś takiego jest potrzebne:
select * from a,b where a.id =b.id(+) and b.name(+) = 'XYZ';
Krótki przykład na http://www.sqlfiddle.com/#!4/d19b4/ 15