Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Junção externa do Oracle com condição de filtro na segunda tabela


Não, não há nenhuma condição sob a qual os conjuntos de resultados sejam diferentes.

Mas sua suposição "a.id = b.id(+) não tem significado" não está 100% correto. Ele tem um significado, pois define a junção, caso contrário seria um produto cartesiano de a e b com todas as linhas de a e b.name ='XYZ'.

O que não tem efeito é o (+) , porque a declaração está "semanticamente" errada. Não faz sentido fazer uma junção externa no id, mas sim no nome.

Geralmente algo assim é desejado:
select  * from a,b where a.id =b.id(+) and b.name(+) = 'XYZ';

Exemplo curto em http://www.sqlfiddle.com/#!4/d19b4/ 15